java程序设计第2讲.ppt
《java程序设计第2讲.ppt》由会员分享,可在线阅读,更多相关《java程序设计第2讲.ppt(73页珍藏版)》请在三一办公上搜索。
1、2023/7/1,1,Java语言程序设计,河南科技专修学院,辛凤凡,2023/7/1,2,第2章 运算和语句,2023/7/1,3,本章总体纲要,数据运算语句Java程序实例,2023/7/1,4,数据运算,赋值运算(简单 复合)算术运算自增自减运算(单目)关系运算逻辑运算条件运算(三目)其他运算,2023/7/1,5,Java运算符,赋值类运算符算术运算符自增自减运算符关系运算符布尔逻辑运算符条件运算符其他运算符(位运算符、移位),2023/7/1,6,1.赋值类运算符,简单赋值运算符不是相等()int j=3;double y=2.0;y=j;(类型自动转换)从简单到复杂的转换赋值运算也
2、有值 y=j=3;结合性:自右至左,2023/7/1,7,1.赋值类运算符,复合赋值类运算符包括:+=、-=、*=、/=、,2023/7/1,8,2.算术运算符,算术运算符包括:(取正),(取负)(单目运算)+,-,*,/,%(双目运算)注意事项:当操作数是定点类型数据时,应当注意运算是否会溢出 int i=123456;i=i*i;/溢出整数除法:截去余数7/5 结果为 1考虑除数是否可能为0或很小的数,2023/7/1,9,取模:返回余数,可以对定点或浮点数进行取模运算7%5 结果为 2;15.25%(-0.5)结果为0.25,2023/7/1,10,练习,-7/5=-7%5=7%-5=5
3、.5%1.0=,-1-220.5,2023/7/1,11,3.自增自减运算(单目),自增(+)和自减(-):操作数必须是变量;有前置和后置两种运算 int n=3;int i=n+,j=n-;/i=3,j=4,n=3 int k=+n,m=-n;/k=4,m=3,n=3,2023/7/1,12,3.自增自减运算,前缀 和后缀,对变量本身,效果相同;但表达式的值不相同。i=5;+i;i-;运算对象只能是变量,不能是常量或表达式,如:7+;(i+j)都是非法的。,2023/7/1,13,4.关系运算符,关系运算符包括:、=、=和!=,关系运算生成一个布尔结果。例如:1 2;/false3.5!=1
4、;/true 51.5=23.0;/true540=654;/true24=3*8;/trueboolean test1=(10 10);/test1=false;,2023/7/1,14,注意事项:计算机在表示浮点数以及浮点数运算时存在误差,建议不要直接比较两个浮点数是否相等,而通常改为判断这两个浮点数是否在一定的误差允许范围之内。例如:(15.2%0.5)=0.2/结果为false(0.2-1.0e-5 15.2%0.5)&(15.2%0.5 0.2+1.0e-5),2023/7/1,15,5.逻辑运算符,逻辑运算的操作数必须是布尔型,结果也是布尔型。可以有3种基本操作:与(&)、或(|)
5、、非(!)。与C或C+不同的是,不可将一个非布尔值当作布尔值在逻辑表达式中使用。,2023/7/1,16,短路规则(&和|),短路规则:一旦能够明确无误的确定整个表达式的值,就不再计算表达式余下的部分了。因此,整个逻辑表达式靠后的部分可能不会计算。比较:(birthday=true)&(+age=65)(birthday=true)|(+age=65),2023/7/1,17,短路规则(&和|),int a,b,c;a=b=c=1;boolean w;w=+a1|+b+c;a?b?c?w?答案:a=2,b=1,c=1,w=true;,2023/7/1,18,6.条件运算符,条件运算符是一个三目
6、运算符,一般形式为:逻辑表达式?表达式1:表达式2例如:int i=5;int k=(i=0)?1:-1;条件运算符的结合性为“自右至左”。例如:x y?x:u v?u:v 等价于 x y?x:(u v?u:v),2023/7/1,19,7.其他运算符,位运算 移位运算运算的优先级()类型强制转换运算,2023/7/1,20,位运算符和移位,位运算符包括:&、|、移位运算符有:、和 带符号右移:左端空出的位填原符号位不带符号右移(逻辑右移):左端空出的位填0(C或C+中无此运算符)位运算操作是:先将整数写成二进制形式(补码),然后按位操作,最后产生一个新的数注意:只用于定点类型数据(整型),2
7、023/7/1,21,注意事项:Java将布尔类型作为一种单比特值(bit 位)对待,可以对它执行按位“与”(&)、按位“或”(|)和按位“异或”()运算。对于布尔值,按位操作具有与逻辑操作相同的效果,只是&和|采用“短路规则”而&和|则不采用。,2023/7/1,22,int before=20;/apple笔记本市场份额double rise=9.8;/增长的份额int now=before+rise;/现在的份额,int now=before+(int)rise;,去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?,编译出错:不能完成自动类型转换,(
8、类型名)表达式,强制类型转换,int b=(int)10.2;double a=10;int c=(int)a;,其它运算符包括:(类型)、()、.、.,更改为,强制类型转换,2023/7/1,23,算符优先,当一个表达式中存在多个运算符时,运算符的优先级决定了个部分的计算顺序。Java对运算符的优先级做了特别规定。程序员经常会忘记运算符的优先规则,所以应该用()来明确规定计算顺序使表达式更容易理解。例如:a+b+c/3(a+b+c)/3,2023/7/1,24,C+中引入了运算符重载,使得c+程序员可以为几乎所有运算符增加功能,而Java认为此项特性过于复杂,所以Java程序员不能像C+程序
9、员那样实现自己的重载操作符。但是+和+=操作符除了一般算术运算的用途外,还可用于连接不同的字符串。在C和C+中,sizeof()运算符可以告诉我们为数据分配的字节数,C和C+需要这个运算符的最大原因是为了“移植”,不同数据类型在不同机器上可能有不同的大小,在进行一些与存储空间有关的运算时,程序员必须获悉哪些类型具体有多大。而Java则不需要,因此,Java中没有sizeof()运算符。,2023/7/1,25,本章总体纲要,数据运算语句Java程序实例,2023/7/1,26,语句,基本语句复合语句控制结构语句(顺序、选择、循环),2023/7/1,27,基本语句,表达式语句 k=k+2;空语
10、句;break语句 break;用于循环或选择continue语句 continue;同上return语句 return;return 表达式;该语句的执行将结束方法的执行,只能出现在方法体中,2023/7/1,28,复合语句,用花括号引起来的两条或两条以上语句,顺序执行但作为一个整体。在复合语句中可以定义自己专用的临时变量,2023/7/1,29,控制结构,if语句和if-else语句switch语句 for语句 while语句 do-while语句 break语句 continue语句return语句,2023/7/1,30,true和false,选择或循环结构中,都根据布尔表达式的真或假
11、来决定执行路径。注意:Java不允许将一个数字作为布尔值使用,这与c或c+不同。例如:当要表达“如果a不等于0”这个条件 不能写作 if(a)而要写作 if(a!=0),2023/7/1,31,if语句,if语句的格式是:if(布尔表达式)语句或if(布尔表达式)一条或多条语句例如:if(score=60)System.out.println(Passed);/Here could be a statement block.,2023/7/1,32,if-else语句,if-else语句的格式是:if(布尔表达式)语句1或语句块1else 语句2或语句块2例如:if(score=60)Syst
12、em.out.println(Passed!);else System.out.println(Failed!);,2023/7/1,33,if-else语句,标准嵌套if-else控制结构可实现多路选择,用在想从多个候选项中选择且只选出一项时。例如:if(score90)System.out.println(“A”);else if(score=80)System.out.println(“B”);else if(score=60)System.out.println(“C”);else System.out.println(“F”);,2023/7/1,34,if-else语句,当使用if
13、-else嵌套实现多分支选择结构时,注意if和else的匹配采用最近原则,即else子句与最近的前一个未匹配的if子句配对。例如:if(condition1)if(condition2)system.out.println(“One”);else system.out.println(“Two”);缩进可以提高程序的可读性,但不影响程序的逻辑。,2023/7/1,35,switch(表达式)case 常量 1:语句组1;break;case 常量 2:语句组2;break;default:语句;,什么是switch结构,计算表达式的值,如果等于常量1,如果等于常量2,如果没有找到匹配的值,20
14、23/7/1,36,switch语句,switch表达式的数据类型可以是基本类型char、byte、short、int;或是这四种基本类型相对应的包装类java.lang.Character、java.lang.Byte、java.lang.Short、java.lang.Integer或enum枚举类型。跟在case后的必须是常量表达式,其值的类型应当与switch表达式的数据类型相匹配。,2023/7/1,37,常见错误,int mingCi=1;switch(mingCi)case 1:System.out.println(出任武林盟主);case 2:System.out.printl
15、n(出任武当掌门);case 3:System.out.println(出任峨嵋掌门);default:System.out.println(被逐出师门);,输出结果是什么?,如果需要每个case执行完后跳出,在每个case后不要忘记写break;,2023/7/1,38,常见错误,int mingCi=1;switch(mingCi)case 1:System.out.println(出任武林盟主);break;case 2:System.out.println(出任武当掌门);break;case 2:System.out.println(出任峨嵋掌门);break;default:Sys
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计
链接地址:https://www.31ppt.com/p-5376029.html