运算符、表达式和语句王宗江.ppt

上传人:壹****1 文档编号:568249244 上传时间:2024-07-23 格式:PPT 页数:43 大小:4.60MB
返回 下载 相关 举报
运算符、表达式和语句王宗江.ppt_第1页
第1页 / 共43页
运算符、表达式和语句王宗江.ppt_第2页
第2页 / 共43页
运算符、表达式和语句王宗江.ppt_第3页
第3页 / 共43页
运算符、表达式和语句王宗江.ppt_第4页
第4页 / 共43页
运算符、表达式和语句王宗江.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《运算符、表达式和语句王宗江.ppt》由会员分享,可在线阅读,更多相关《运算符、表达式和语句王宗江.ppt(43页珍藏版)》请在金锄头文库上搜索。

1、第3章运算符、表达式和语句3.1 运算符与表达式3.2 语句概述3.3 if条件分支语句3.4 开关语句3.5 循环语句3.6 break和continue语句3.7 数组与for语句3.8 枚举类型与for、switch语句主要内容3.1 运算符与表达式对数据进行运算时,需要使用各种不同的运算符 在Java语言中,运算符分为下面几类:算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符赋值运算符赋值运算符位运算符位运算符条件运算符条件运算符运算符-1 算术运算符与算数表达式 运算符运算符数学含义数学含义示例示例运算符运算符数学含义数学含义示例示例+ 加a+b%取模a%b-减或负号a-

2、b,-b+自增a+,+a*乘a*b-自减a-,-a/除a/b说明 1加减运算符: +,- 加减运算符是二目运算符;加减运算符的结合方向是从左到右;加减运算符的操作元是整型或浮点型数据。 2乘、除和求余运算符: *,/,%以上运算符是二目运算符,结合方向是从左到右,乘、除和求余运算符的操作元是整型或浮点型数据。3自增、自减运算符:a+(a-),+a(-a) 是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。作用是使变量的值增1或减1。+a(-a)表示在使用a之前,先使a的值增(减)1。a+(a-)表示在使用a之后,使a的值增(减)1。4 算术表达式: 用算

3、术符号和括号连接起来的符合java语法规则的式子,称为算术表达式。算术混合运算精度精度从“低”到“高”排列的顺序是: byte short char int long float double Java在计算算术表达式的值时,使用下列计算精度规则:1如果表达式中有双精度浮点数(double型数据),则按双精度进行运算。2如果表达式中最高精度是单精度浮点数(float型数据),则按单精度进行运算。3如果表达式中最高精度是long型整数,则按long精度进行运算。4如果表达式中最高精度低于int型整数,则按int精度进行运算。运算符-2关系运算符与关系表达式运算符运算符数学含义数学含义示例示例运算

4、符运算符数学含义数学含义示例示例大于ab=大于等于a=b小于ab=小于等于a=a=等于a=b说明 关系运算符是二目运算符,用来比较两个值的关系。关系运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则是false。 32) false (32) &(72) |(76) true 输出:输出: false false true运算符-4赋值运算符 赋值运算符为一个单独的等于号“=”,它将值赋给变量 。如: int i = 3;此外赋值运算符可以与算术运算符结合成一个运算符。如: i+=3; / 等效于i=i+3运算符运算符示例示例运算符运算符示例示例+=a +=

5、 b /=a /= b -=a -= b %=a %= b*=a *= b 类似的赋值运算符如下表所示: 注意:不要将赋值运算符“=”与等号逻辑运算符“=”混淆。运算符-5位运算符 运算符运算符数学含义数学含义说明说明示例示例 按位非(NOT)按位非也叫做补,一元运算符NOT“”是对其运算数的每每一位取反。一位取反。 00101010= 11010101 &按位与(AND) 按位与运算符“&”,如果两个运算数都是如果两个运算数都是1,则结果为,则结果为1。其他情况下,结果均为零。 00101010 & 00001111 = 00001010 |按位或(OR) 按位或运算符“|”,任何一个运算数

6、为任何一个运算数为1,则结果为,则结果为1。 00101010 | 00001111 = 00101111 按位异或(XOR) 按位异或运算符“”,只有在两个比较的位不同时其两个比较的位不同时其结果是结果是1。 0 0=0 1 1=00 1=1左移 value num。左移运算符使指定值的所有位都左移num位。每左移一个位,高阶位都被移出高阶位都被移出(并且丢弃),并用并用0填充右边。填充右边。 11111000 右移 右移运算符使指定值的所有位都右移num位。当值中的某些位被“移出”时,这些位的值将丢弃。右移时,右移时,被移走的最高位(最左边的位)由被移走的最高位(最左边的位)由原来最高位的

7、数字原来最高位的数字原来最高位的数字原来最高位的数字补补充。充。 11111000 1 = 11111100 无符号右移无符号右移运算符使指定值的所有位都右移num位。当值中的某些位被“移出”时,这些位的值将丢弃。右右移时,被移走的最高位(最左边的位)固定由移时,被移走的最高位(最左边的位)固定由0 0补充。补充。11111000 1 = 01111100 例3.1public class Example3_1 public static void main(String args) char a1=中,a2=国,a3=科,a4=大; char secret=A; a1=(char)(a1se

8、cret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(密文:+a1+a2+a3+a4); a1=(char)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(原文:+a1+a2+a3+a4); 运算符-6条件运算符 条件运算符是三元运算符,语法格式为 : ? e1 : e2 表达式值的类型为布尔类型,若表达式的值为真,则返回e1的值 表

9、达式的值为假,则返回e2的值。 示例 public class ThreeOP public static void main(String args) int num1 = 3, num2 = 6; boolean result = (num1 num2) ? true : false; System.out.println(result); 演示结果:演示结果: false 运算符-7Instanceof 运算符 判断某对象是否属于某类? instanceof 运算符运算符是二目运算符,左面的操作元是一个对象对象;右面是一个类类。当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果

10、是true ,否则是false。运算符-综述运算符优先级 优先次序优先次序运算符运算符优先次序优先次序运算符运算符1. () 9&2+ - ! instanceof103new (type)11| 4* / % 12&5+ - 13|6 = = 15= += -= *= /= %= =8= = != 16&= |= = = 优先级是指同一表达式中多个运算符被执行的次序,在表达式求值 时,先按运算符的优先级由高到低的次序执行。Java中运算符优先级如下表所示。3.2 语句概述Java里的语句可分为以下六类:1方法调用语句。如:方法调用语句。如:System.out.println( Hello)

11、;2表达式语句表达式语句 表示式尾加上表示式尾加上分号分号。比如赋值语句:。比如赋值语句:x=23;3复合语句复合语句 可以用可以用 把一些语句括起来构成复合语句,如:把一些语句括起来构成复合语句,如: z=123+x; System.out.println(How are you); 4空语句。空语句。 一个分号也是一条语句,称做空语句。一个分号也是一条语句,称做空语句。5控制语句。控制语句分为条件分支语句、开关语句和循环语句。控制语句。控制语句分为条件分支语句、开关语句和循环语句。6package语句和语句和 import语句。它们和类、对象有关,将在第语句。它们和类、对象有关,将在第4章

12、讲解。章讲解。3.3 if条件分支语句 条件分支语句按着语法格式可细分为三种形式:if语句if-else语句If - else if - else 语句3.3.1 if 语句 If 语句是单条件分支语句,即根据一个条件来控制程序执行的流程。 if条件语句的基本语法格式:if(布尔表达式)若干语句例子例1:没有 else部分的例子Public class IfTry public static void main(String args ) int a1=95; if(a1=90) System.out.println(祝 贺 你 ,你 获 得 奖 学 金!); 3.3.2 if-else语句

13、if-else 语句是双条件分支语句,即根据一个条件来控制程序执行的流程。if-else条件语句基本语法格式:if(布尔表达式) 语句序列1else /否则 语句序列2 例子例2:有 else部分的例子Public class IfTry2 public static void main(String args ) int a1=59; if(a1=60) System.out.println(你及格了!); else System.out.println(你没及格,请继续努力!); 3.3.3 if -else if- else 语句 if- else if -else 语句是多条件多条件分

14、支语句,即根据多个条件多个条件来控制程序执行的流程。 if(表达式表达式) 若干语句若干语句 else if(表达式表达式) 若干语句若干语句 else 若干语句若干语句 例子public class T1 public static void main(String args) int a=10;if(a30) System.out.println(a30);else if(a20)System.out.println(a20);else if(a10)System.out.println(a10);else if(a0) System.out.println(a0);3.4 switch开

15、关语句 switch 语句是单条件多分支单条件多分支的开关语句,它的一般格式定义如下(其中default语句是可选的)switch(表达式) case 常量值1: 语句系列1 break; case 常量值2: 语句系列2 break; . case 常量值n: 语句系列n break; default: 若干语句表达式表达式表达式表达式breakbreak语句语句语句语句1 1breakbreak语句语句语句语句2 2breakbreak语句语句语句语句n nbreakbreak缺省处理语句缺省处理语句缺省处理语句缺省处理语句后续语句后续语句后续语句后续语句常量常量常量常量1 1常量常量常量

16、常量2 2常量常量常量常量n ndefaultdefault.3.4 switch 开关语句(续) switch语句的注意点:1.使用switch 语句时,要注意表达式必须是符合byte,char,short,int类型的表达式,而不能使用浮点类型或long类型,也不能为一个字符串;2.switch语句将表达式的值依次与每个case子句中的常量值相比较。如果匹配成功,则执行该case子句中常量值后的语句,直直直直到到到到遇遇遇遇到到到到breakbreakbreakbreak语句为止;语句为止;语句为止;语句为止;3.case子句中常量的类型必须与表达式的类型相容,而且每个case子句中常量的

17、值必须是不同的;4. defaultdefault子句是可选的,当表达式的值与任一case子句中的值都不匹配时,就执行default后的语句。如果表达式的值与任一case子句中的值都不匹配且没有default子句,则程序不执行任何操作,而是直接跳出switch 语句,进入后续程序段的执行。3.4 switch 开关语句(续) 5.breakbreak语句用来在执行完一个case 分支后,使程序跳出switch 语句,执行switch 语句的后续语句。6. 在一些特殊的情况下,例如多个不同的case值要执行一组相同的操作,语句序列可以只出现一次,如: switch(MyGrade) case A

18、: case B: case C: case D: MyGrade=“及格!”; break; default : MyGrade=“不及格”; 3.4 switch 开关语句(续) 7.case 分支中包括多个执行语句时,可以不用花括号“”括起;8.通过if-else if 语句可以实现switch 语句所有的功能。但通常使用switch语句更简练,且可读性强,程序的执行效率也高;9. if-else if 语句可以基于一个范围内的值或一个条件来进行不同的操作,但switch 语句中的每个case 子句都必须对应一个单值对应一个单值。例子public class TestSwitchpubl

19、ic static void main(String args)int grade=100;int x=grade/10;switch(x)case 10:case 9: System.out.println(成绩为优!);break;case 8: System.out.println(成绩为良!);break;case 7: System.out.println(成绩为中!);break;case 6: System.out.println(成绩为及格!);break;default: System.out.println(真糟糕,不及格!);3.5 循环语句 循环语句是根据条件,要求程序

20、反复执行某些操作,直到程序“满意”为止。 包括如下几种循环:for循环语句 while 循环 do-while循环 注意:循环语句的三个要素3.5.1 for循环语句 for语句的语法格式: for (表达式1; 表达式2; 表达式3) 循环体 for语句的执行规则是: (1)计算“表达式1(初值表达式),完成必要的初始化工作。 (2)判断“表达式2”(条件表达式)的值。若“表达式2”的值为true,则执行循环体,否则结束 for 语句的执行。 (3)执行循环体后,计算“表达式3”,以便改变循环条件,转到(2)。for循环语句例子例4:加法从1加到100public class T4 publ

21、ic static void main(String args) int sum=0;for ( int i=1 ; i=100 ; i+ ) sum=sum+i; System.out.println(结果=+sum);3.5.2 while循环语句 while语句的语法格式:while (表达式) 循环体 while语句的执行规则是: (1)计算表达式的值,如果该值是true时,就进行循环体,否则结束while语句的执行。 (2)执行循环体后,转到(1)。 (3)一直到结束循环while 循环语句例子例5:加法从1加到100public class T5 public static voi

22、d main(String args)int a=1;int sum=0;while(a=100)sum=sum+a;a+; System.out.println(输出结果=+sum);3.5.3 do-while循环语句do-while语句的语法格式:do 循环体 while(表达式)do- while语句的执行规则是: (1 1)执行循环体,转到()执行循环体,转到(2 2)。)。 (2 2)计算表达式的值,如果该值是)计算表达式的值,如果该值是truetrue时,继续执行循环体,否则结束循环。时,继续执行循环体,否则结束循环。 (3 3)直到结束循环。)直到结束循环。do-while 循

23、环语句例子例6:加法从1加到100public class T6 public static void main(String args) int a=1;int sum=0;do sum=sum+a; a+;while(a=100);System.out.println(sum=+sum);3.6 break和continue语句 break和continue语句是用关键break或continue加上分号构成的语句;在循环体中可以使用break语句和continue语句;如果在某次循环中执行了break语句,那么整个循环语句就结束;如果在某次循环中执行了continue语句,那么本次循环就

24、结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行下一次循环;break 结束循环;continue 结束本次循环 ;使用continue语句例子例7:求100以内奇数的和public class TestContinuepublic static void main(String args)int sum=0,i;for(i=1;i=100;i+)if(i%2=0) continue;sum+=i;System.out.println(100以内的奇数和是:+sum);使用 break 语句例子例8:求50以内的素数public class Testbreak pu

25、blic static void main(String args) int i,j; for(j=2;j=50;j+) /求50以内的素数 for( i=2;ij/2)j/2) System.out.println(+j+是素数); 3.7 数组与for语句 遍历数组,可以使用for 循环实现!Java提供了更好的方法!forfor语句语句可以更好地遍历数组。语法格式如下:for(声明循环变量:数组的名字) 循环体 功能:对于循环变量,依次取依次取数组的每一个元素的值。注意:(1)声明的循环变量的类型必须和数组的类型相同。(2)声明的循环变量必须是变量声明,不可用已经声明变量。(3)本功能是

26、JDK1.5版本对for语句的扩充。 for(int i :a) System.out.println(i); 使用数组与for语句例子public class Example3_8 public static void main(String args) int a=1,2,3,4; char b=a,b,c,d; for(int n=0;na.length;n+) /传统方式 System.out.println(an); for(int n=0;n=1;i-)sum*=i;return sum;public static void main(String args)System.out.

27、println(10的阶乘是:+fact(10);算术运算符有:算术运算符有:+ +、- -、* *、/ /、% %、+、-比较运算符有:比较运算符有: 、=、 、=、条件运算符又称三元运算符是条件运算符又称三元运算符是“?:?:”JavaJava提供算术、比较、关系、逻辑等运算符完成复杂数据运算提供算术、比较、关系、逻辑等运算符完成复杂数据运算JavaJava的分支语句有的分支语句有if.elseif.else,switch.caseswitch.caseJavaJava的循环语句有的循环语句有forfor,whilewhile,do.whiledo.whileJavaJava的转移语句有的转移语句有breakbreak,continuecontinue数组与数组与forfor语句语句枚举类型与枚举类型与forfor、switchswitch语句语句小结

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号