资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第5讲:运算符与流程控制,内容提要,Java运算符算术比较逻辑位赋值Java流程控制顺序分支循环跳转,教学要求,熟练掌握运算符和流程控制的编程语法。,1 Java运算符算术运算符,算术运算符有+、-、*、/、%、+、-。 (1)+,有三种功能:正号、加号和字符串连接。 (2)-,有两种功能:负号和减号。(3)*,要注意乘法运算后结果是否超出了类型的取值范围,例如:int a=123456, b=2345678, c; c=a*b/b; /结果不是123456,而是 778 (4)/,当左右两个操作数都是整型数时,/表示的是整除 (5)%(取余运算符),其计算结果的符号只与第一个操作数的符号相同,与第二个操作数的符号无关,例如10%3=1,10%-3=1,-10%3=-1,-10%-3=-1,-10.3%3=-1.3。%的操作数可以是整数也可以实浮点数。,比较运算符,该运算符对左右两端的操作数进行比较,运算结果是boolean类型的。比较运算符有=(相等)、!=(不等)、=、instanceof。 注意:=与=不同,前者是比较操作符,后者是赋值操作符,例如 boolean b=false; if(b=true) /赋值 System.out.println(Hello); if(b=true) /比较 System.out.println(World); ,逻辑运算符,位运算符,位运算符的几点说明,(1)位运算符可以与=组合使用,例如a=2,a&=b,。(2)位运算只适用于byte,char,short,int,long类型的数据。(3)位运算不会对原数据实施操作,而是对原数据的副本实施操作,例如int a=10; a1;则a的值不变。(4)移位运算的操作数如果类型不一致,则会发生类型的自动提升,例如ab,提升规则为:若a,b的类型都低于int,则自动提升为int型,否则运算结果的类型和a,b中的最高类型一致。(5)对移位运算而言,例如ab,若a为int型,则实际移动的位数为b%32,例如int a=10;a1与a1与a/2的结果相同,a1与的结果相同,只是移位运算的速度快。,赋值运算符,赋值运算符为=,可以单独使用,例如a=10,也可以与其他运算符组合使用,若其他运算符统一抽象用表示,则a=b在功能上和a=ab相同,例如a+=3同a=a+3。可组合使用的运算符有:+、-、*、/、%、&、|、。 赋值可以连续使用,例如int a,b,c,d;a=b=c=d=10;连续赋值时,赋值顺序自右向左。,运算符的优先级,上述的各种运算符之间是有优先级的,但本着程序代码的易读性,我们不必要知道他们的优先级。举例int a=20; b=a+a/4;,流程控制,Bohra和Jacopini提出了程序设计的三种基本结构:顺序结构、条件分支结构和循环结构,并从理论上证明了一切可描述的程序算法均可通过使用这三种结构得到解决。顺序结构 顺序结构是程序设计中最基本最简单的结构,一切程序设计算法,归结到计算机指令,都是顺序执行的,顺序结构要求按顺序执行每一条指令。,条件分支结构,if语句 条件表达式switch语句,if语句,if 语句有以下几种表现形式: (1)if (boolean表达式) 语句块; (2)if (boolean表达式) 语句块1; else 语句块2 ,(3)if (boolean表达式1) 语句块1; else if (boolean表达式2) 语句块2; . else if(boolean表达式n) 语句块n; else 语句块n+1 ,(4)if语句的嵌套。if 语句可以嵌套使用以表达更复杂的条件判断。如: if(a=2) if(b=3) 语句块1; else 语句块2; 语句块3; ,条件表达式,语法为:表达式1? 表达式2 : 表达式3; 含义是若表达式1的结果为 true,则执行表达式2并返回其值,否则执行表达式3并返回其值。条件表达式相当于 if else结构,例如: int x=-10; int absX= x0? x:-x; /执行完后absX=10,switch 语句,switch(表达式) case 常量表达式1: 语句块1; break; case 常量表达式2: 语句块2; break; . case 常量表达式n: 语句块n; break; default: 语句块n+1; break; ,说明,(1)switch表达式的类型只能是byte、char、short、int中的一种。(2)case语句后常量表达式的类型与switch表达式的类型一致,常量表达式中不能含有变量。 (3)break语句为可选项,放在每个case语句块的末尾,当执行break语句后,就会结束switch语句的执行。若没有break语句,则会继续执行后续的case分支语句,直到遇到break语句或switch语句结束。 (4)default语句的数量可为0或1,case语句的数量可为0或1或多个。default与case语句之间没有先后顺序,只是习惯上把default语句放在最后。,循环结构,Java 的循环结构有三种:whiledowhilefor循环。,while,while(boolean表达式) 循环体; 含义是首先计算boolean表达式的值,若为true则执行循环体,直到boolean表达式的值变为false为止。注意boolean表达式不能为字面常量false,试比较boolean b=false; while(b)/正确,但该循环体一次也得不到执行 . while(false) /编译错误,在程序中该段代码的存在没有任何意义 . ,do while循环,do 循环体; while(boolean表达式);,for循环,for(表达式1;表达式2;表达式3) 循环体; ,表达式1,表达式2,循环体,表达式3,true,false,退出循环,优化的for循环,从JDK 5.0开始新增加了for循环的一种新用法,称为优化的for循环,用于遍历数组或者集合对象,集合详见8.2.2节。例如:String s=a,b,c;/对象类型的数组 for(String i:s) /i是s的元素变量,变量i需要声明其类型,即s的元素的类型。 /s可以是数组或者集合。 System.out.println(i); int i=1,2,3; /基本类型的数组 for(int k:i) System.out.println(k); ,跳转语句,break语句continue语句return语句,break语句,break语句可以中断switch语句或循环语句的执行。break语句分为带标号和不带标号两种形式,其格式为:break 标号;int a=1,2,3; lab1: while(true) for(int i=0;ia.length;i+) if(ai0) break; /跳出当前的for循环 else if(ai=0) break lab1; /跳出lab1标记的while循环 ,continue 语句,continue语句只适用于循环体语句,其功能是终止当前这一轮循环,不再继续执行continue语句后面的语句,而直接进入下一轮的循环。其格式为:continue 标号;int k=0; int a=1,2,3,-1,0; lab2:while(k100) for(int i=;ia.length;i+) if(ai0) continue; /跳到i+ else if(ai=0) continue lab2; /跳到lab2处 ,return语句,return语句用在方法中,其功能是终止当前方法的继续执行,并返回到调用该方法的位置之后。其格式为:return 表达式;,小 结,Java运算符算术比较逻辑位赋值Java流程控制顺序分支循环跳转,作业,编程输出:Fibonacci 数列。编程为学生成绩分类:不及格:0-59及格:60-69中:70-79良:80-89优:90-100,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号