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