《java程序设计》第2讲课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《java程序设计》第2讲课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java程序设计 java 程序设计 讲课
- 资源描述:
-
1、Java语言程序设计河南科技专修学院辛凤凡辛凤凡10/13/20221第第2章章 运算和语句运算和语句10/13/20222本章总体纲要本章总体纲要 数据运算数据运算 语句语句 Java程序实例程序实例 10/13/20223数据运算数据运算 赋值运算(简单赋值运算(简单 复合)复合)算术运算算术运算 自增自减运算自增自减运算(单目)(单目)关系运算关系运算 逻辑运算逻辑运算 条件运算条件运算(三目)(三目)其他运算其他运算10/13/20224Java运算符运算符1.赋值类运算符赋值类运算符2.算术运算符算术运算符3.自增自减运算符自增自减运算符4.关系运算符关系运算符5.布尔逻辑运算符布尔
2、逻辑运算符6.条件运算符条件运算符7.其他运算符(位运算符其他运算符(位运算符、移位)、移位)10/13/202251.赋值类运算符赋值类运算符 简单赋值运算符简单赋值运算符 不是相等()不是相等()int j=3;double y=2.0;y=j;(类型自动转换)从简单到复杂的转换 赋值运算也有值 y=j=3;结合性:自右至左10/13/202261.赋值类运算符赋值类运算符 复合赋值类运算符复合赋值类运算符 包括:包括:+=、-=、*=、/=、&=、|=、%=、=和和=op1=op1 二元运算符二元运算符 op2 等价于等价于 op1二元运算符二元运算符=op2;例如:例如:a=a+b;等
3、价于等价于a+=b;10/13/202272.算术运算符算术运算符算术运算符包括:算术运算符包括:(取正),(取正),(取负)(取负)(单目运算)(单目运算)+,-,*,/,%(双目运算)(双目运算)注意事项:注意事项:当操作数是定点类型数据时,应当注意运算是否当操作数是定点类型数据时,应当注意运算是否会溢出会溢出 int i=123456;i=i*i;/溢出溢出 整数除法:截去余数整数除法:截去余数7/5 结果为结果为 1 考虑除数是否可能为考虑除数是否可能为0或很小的数或很小的数10/13/20228 取模:返回余数,可以对定点或浮点数进取模:返回余数,可以对定点或浮点数进行取模运算行取模
4、运算7%5 结果为结果为 2;15.25%(-0.5)结果为结果为0.2510/13/20229练习练习1)-7/5 =2)-7%5 =3)7%-5 =4)5.5%1.0=-1-220.510/13/2022103.自增自减运算(单目)自增自减运算(单目)自增自增(+)和自减和自减(-):操作数必须是变量;有:操作数必须是变量;有前置和后置两种运算前置和后置两种运算 int n=3;int i=n+,j=n-;/i=3,j=4,n=3 int k=+n,m=-n;/k=4,m=3,n=310/13/2022113.自增自减运算自增自减运算 前缀前缀 和后缀,和后缀,对变量本身,效果相同;对变量
5、本身,效果相同;但表达式的值不相同。但表达式的值不相同。i=5;+i;i-;运算对象只能是变量,不能是常量或表运算对象只能是变量,不能是常量或表达式达式,如:如:7+;(i+j)都是非法的。都是非法的。10/13/2022124.关系运算符关系运算符 关系运算符包括关系运算符包括:、=、=和和!=,关系运算生成一个关系运算生成一个布尔结果布尔结果。例如例如:1 2;/false3.5!=1;/true 51.5=23.0;/true540=654;/true24=3*8;/trueboolean test1=(10 10);/test1=false;10/13/202213 注意事项:注意事项
6、:计算机在表示浮点数以及浮点数运算时存在误计算机在表示浮点数以及浮点数运算时存在误差,建议不要直接比较两个浮点数是否相等,差,建议不要直接比较两个浮点数是否相等,而通常改为判断这两个浮点数是否在一定的误而通常改为判断这两个浮点数是否在一定的误差允许范围之内。差允许范围之内。例如:例如:(15.2%0.5)=0.2 /结果为结果为false(0.2-1.0e-5 15.2%0.5)&(15.2%0.5=65)(birthday=true)|(+age=65)10/13/202216短路规则短路规则(&和和|)int a,b,c;a=b=c=1;boolean w;w=+a1|+b=0)?1:-1
7、;条件运算符的结合性为条件运算符的结合性为“自右至左自右至左”。例如:例如:x y?x:u v?u:v 等价于等价于 x y?x:(u v?u:v)10/13/2022187.其他运算符其他运算符 位运算位运算 移位运算移位运算 运算的优先级运算的优先级()()类型强制转换运算类型强制转换运算10/13/202219 位运算符和移位位运算符和移位位运算符包括:位运算符包括:&、|、移位运算符有移位运算符有:、和和 带符号右移:左端空出的位填原符号位带符号右移:左端空出的位填原符号位不带符号右移(逻辑右移):左端空出的不带符号右移(逻辑右移):左端空出的位填位填0(C或或C+中无此运算符)中无此
8、运算符)位运算操作是:先将整数写成二进制形式位运算操作是:先将整数写成二进制形式(补码),然后按位操作,最后产生一个新(补码),然后按位操作,最后产生一个新的数的数注意注意:只用于定点类型数据(整型)只用于定点类型数据(整型)10/13/202220注意事项:注意事项:Java将布尔类型作为一种单比特值(将布尔类型作为一种单比特值(bit 位)位)对待,可以对它执行按位对待,可以对它执行按位“与与”(&)、按)、按位位“或或”(|)和按位)和按位“异或异或”()运算。)运算。对于布尔值,按位操作具有与逻辑操作相同对于布尔值,按位操作具有与逻辑操作相同的效果,只是的效果,只是&和和|采用采用“短
9、路规则短路规则”而而&和和|则不采用。则不采用。10/13/202221int before=20;/apple笔记本市场份额笔记本市场份额double rise=9.8;/增长的份额增长的份额int now=before+rise;/现在的份额现在的份额int now=before+(int)rise;去年去年AppleApple笔记本所占的市场份额是笔记本所占的市场份额是2020,今年增长的市场份额是,今年增长的市场份额是9.89.8,求今年所占的份额?,求今年所占的份额?编译出错:不能完成自动类型转换(类型名)表达式(类型名)表达式强制类型转换强制类型转换int b =(int)10.2
10、;double a=10;int c=(int)a;其它运算符其它运算符包括:包括:(类型类型)、()()、.、.更改为更改为强制类型转换强制类型转换10/13/202222算符优先算符优先 当一个表达式中存在多个运算符时,运算符的优先级当一个表达式中存在多个运算符时,运算符的优先级决定了个部分的计算顺序。决定了个部分的计算顺序。Java对运算符的优先级做对运算符的优先级做了特别规定。了特别规定。程序员经常会忘记运算符的优先规则,所以应该用程序员经常会忘记运算符的优先规则,所以应该用()来明确规定计算顺序使表达式更容易理解。来明确规定计算顺序使表达式更容易理解。例如例如:a+b+c/3 (a+
11、b+c)/310/13/202223 C+中引入了运算符重载,使得中引入了运算符重载,使得c+程序员可以为几乎程序员可以为几乎所有运算符增加功能,而所有运算符增加功能,而Java认为此项特性过于复杂,认为此项特性过于复杂,所以所以Java程序员不能像程序员不能像C+程序员那样实现自己的重程序员那样实现自己的重载操作符载操作符。但是但是+和和+=操作符除了一般算术运算的用途外,还可操作符除了一般算术运算的用途外,还可用于连接不同的字符串。用于连接不同的字符串。在在C和和C+中,中,sizeof()运算符可以告诉我们为数据分运算符可以告诉我们为数据分配的字节数,配的字节数,C和和C+需要这个运算符
12、的最大原因是为需要这个运算符的最大原因是为了了“移植移植”,不同数据类型在不同机器上可能有不同,不同数据类型在不同机器上可能有不同的大小,在进行一些与存储空间有关的运算时,程序的大小,在进行一些与存储空间有关的运算时,程序员必须获悉哪些类型具体有多大。而员必须获悉哪些类型具体有多大。而Java则不需要,则不需要,因此,因此,Java中没有中没有sizeof()运算符运算符。10/13/202224本章总体纲要本章总体纲要 数据运算数据运算 语句语句 Java程序实例程序实例 10/13/202225语句语句 基本语句基本语句 复合语句复合语句 控制结构语句(顺序、选择、循环)控制结构语句(顺序
13、、选择、循环)10/13/202226基本语句基本语句 表达式语句表达式语句 k=k+2;空语句空语句 ;break语句语句 break;用于循环或选择用于循环或选择 continue语句语句 continue;同上;同上 return语句语句 return;return 表达式;表达式;该语句的执行将结束方法的执行,该语句的执行将结束方法的执行,只能只能出现在方法体中出现在方法体中10/13/202227复合语句复合语句 用花括号引起来的两条或两条以上语句,用花括号引起来的两条或两条以上语句,顺序执行但作为一个整体。顺序执行但作为一个整体。在复合语句中可以定义自己专用的临时在复合语句中可以定
14、义自己专用的临时变量变量10/13/202228控制结构控制结构1)if语句和语句和if-else语句语句2)switch语句语句 3)for语句语句 4)while语句语句 5)do-while语句语句 6)break语句语句 7)continue语句语句8)return语句语句10/13/202229true和和false 选择或循环结构中,都根据选择或循环结构中,都根据布尔表达式布尔表达式的真或假来决的真或假来决定执行路径。定执行路径。注意:注意:Java不允许不允许将一个将一个数字数字作为布尔值使用,这与作为布尔值使用,这与c或或c+不同。不同。例如:当要表达例如:当要表达“如果如果a
15、不等于不等于0”这个条件这个条件 不能写作不能写作 if(a)而要写作而要写作 if(a!=0)10/13/202230if语句语句 if语句的格式是语句的格式是:if(布尔表达式布尔表达式)语句语句 或或if(布尔表达式布尔表达式)一条或多条语句一条或多条语句 例如:例如:if(score=60)System.out.println(Passed);/Here could be a statement block.表达表达式式语句语句假假真真10/13/202231if-else语句语句 if-else语句的格式是语句的格式是:if(布尔表达式布尔表达式)语句语句1或语句块或语句块1else
16、 语句语句2或语句块或语句块2 例如:例如:if(score=60)System.out.println(Passed!);else System.out.println(Failed!);真真表达表达式式语句语句1 1假假语句语句2 210/13/202232if-else语句语句 标准嵌套标准嵌套if-else控制结构可实现多路选择,用在想从控制结构可实现多路选择,用在想从多个候选项中选择且只选出一项时。多个候选项中选择且只选出一项时。例如:例如:if(score90)System.out.println(“A”);else if(score=80)System.out.println(“
17、B”);else if(score=60)System.out.println(“C”);else System.out.println(“F”);假假真真真真假假表达式表达式1 1语句语句1 1表达式表达式2 2语句语句2 2语句语句3 310/13/202233if-else语句语句 当使用当使用if-else嵌套实现多分支选择结构时,注意嵌套实现多分支选择结构时,注意if和和else的匹配采用的匹配采用最近原则最近原则,即,即else子句与最近的前一子句与最近的前一个未匹配的个未匹配的if子句配对。子句配对。例如:例如:if (condition1)if (condition2)syst
18、em.out.println(“One”);else system.out.println(“Two”);缩进缩进可以提高程序的可读性,但不影响程序的逻辑。可以提高程序的可读性,但不影响程序的逻辑。10/13/202234switch(表达式)case 常量 1:语句组1;break;case 常量 2:语句组2;break;default:语句;什么是什么是switchswitch结构结构计算表达式的值如果等于常量1如果等于常量2如果没有找到匹配的值10/13/202235switch语句语句switch表达式的数据类型可以是基本类型表达式的数据类型可以是基本类型char、byte、shor
19、t、int;或是这四种基本;或是这四种基本类型相对应的包装类类型相对应的包装类java.lang.Character、java.lang.Byte、java.lang.Short、java.lang.Integer或或enum枚举类型。枚举类型。跟在跟在case后的必须是常量表达式,其值的类后的必须是常量表达式,其值的类型应当与型应当与switch表达式的数据类型相匹配。表达式的数据类型相匹配。10/13/202236常见错误常见错误int mingCi=1;switch(mingCi)case 1:System.out.println(出任武林盟主出任武林盟主);case 2:System.
20、out.println(出任武当掌门出任武当掌门);case 3:System.out.println(出任峨嵋掌门出任峨嵋掌门);default:System.out.println(被逐出师门被逐出师门);输出结果是什么?输出结果是什么?如果需要每个如果需要每个case执行完后跳出,执行完后跳出,在每个在每个case后不要忘记写后不要忘记写break;10/13/202237常见错误常见错误int mingCi=1;switch(mingCi)case 1:System.out.println(出任武林盟主出任武林盟主);break;case 2:System.out.println(出任
21、武当掌门出任武当掌门);break;case 2:System.out.println(出任峨嵋掌门出任峨嵋掌门);break;default:System.out.println(被逐出师门被逐出师门);case后面的常量必须各不相同后面的常量必须各不相同代码错误代码错误10/13/202238常见错误常见错误String day=星期一星期一;switch(day)case 星期一星期一:System.out.println(星期一:青菜星期一:青菜 );break;case 星期二星期二:System.out.println(星期二:鱼星期二:鱼 );break;default:swit
展开阅读全文