java流程控制语句 (2).ppt
第三章 流程控制语句,回顾,了解Java的特殊字符熟练掌握Java的8种数据类型熟练使用Java变量理解类型转换熟练掌握运算符的优先级,本章内容,程序的3种结构if-else语句switch-case开关语句while语句do-while语句for语句break和continue语句嵌套循环,本章目标,熟练掌握if-else条件分支语句熟练掌握switch-case开关语句熟练掌握循环结构之while语句熟练掌握循环结构之do-while语句熟练掌握循环结构之for语句熟练掌握break和continue语句掌握嵌套循环,1.程序的基本结构,程序的3种结构顺序结构:自上而下的逐行执行代码选择结构:根据逻辑判断代码的执行顺序循环结构:根据逻辑重复执行某个代码块,1.1 顺序结构,顺序结构:自上而下地逐行执行代码,输入数据,处理数据,输出结果,自上而下顺序执行,1.2 选择结构,选择结构:根据逻辑判断代码的执行顺序,条件不成立,条件成立,语句块,条件,语句块,1.3 循环结构,循环结构:根据逻辑重复执行某个代码块,循环体,循环条件,条件成立,条件不成立,2.选择结构,2.1 if-else条件分支语句,if(条件表达式)语句块1else 语句块2,如果表达式的值为true则执行语句块1,如果表达式的值为false则执行语句块2,class Example3_4 public static void main(String args)int a=1;if(a=2)System.out.println(a等于2);else System.out.println(a不等于2);,不满足条件,所以执行else后面语句块,2.2 三元运算符与if-else的区别,expression1?expression2:expression3,布尔表达式,expresion1为真,则expresion2被求值,expresion1为假,则expresion3被求值,class Example3_6 public static void main(String args)int x=2;int y;/使用if-else语句来判断if(x0)y=x;elsey=-x;System.out.println(使用if语句得到的y=+y);y=x0?x:-x;System.out.println(使用三元运算符得到的y=+y);,三元运算符返回一个值,2.3 if-else内部嵌套,if(条件表达式)语句块1else语句块2,替换,替换,If(条件表达式)语句块1else 语句块2,If(条件表达式)语句块3else 语句块4,if(条件表达式)if(条件表达式)语句块1 else语句块2 else if(条件表达式)语句块1 else语句块2,if-else内部嵌套,class Example3_9 public static void main(String args)/定义年龄变量 int age=4;if(age=18,嵌套,再嵌套,多层嵌套可以无穷次嵌套吗?,2.4 if-else多级嵌套,if-else多级嵌套,if(条件表达式)语句块1else if(条件表达式)语句块2else语句块3,else后面再写if-else语句,if-else多级嵌套,class Example3_7 public static void main(String args)/定义年龄变量 int age=4;if(age=18,(1)判断条件是否成立,(2)如果 步骤(1)中条件不成立,则判断此条件,(3)如果步骤(1)和(2)中的条件均不成立,则判断此条件,(4)以上条件都不满足则执行,2.5 switch-case语句,switch-case语句,switch(表达式)case 取值1:语句块1;break;case 取值2:语句块2;break;.default:语句块n;,必须为byte、short、int或char类型,可选,用于匹配所有case定义的以外的值,跳出switch语句,在表达式可以得出多个值的情况下,使用switch-case 语句会带来更好的效果,switch-case语句,使用switch-case语句来判断数字,若在15之间,则打印“工作日”;若在67之间,则打印“休息日”,switch-case语句,与if-else比较,switch-case的优点在于可以利用switch的开关功能来实现批处理增加了代码的可读性使代码更容易编写性能更高但缺点是:不能实现嵌套判断,3.循环结构,3.1 while语句,int a1=1;int a2=2;int a3=3;int a100=100;a100=a1+a2+a100;,编写程序,计算1+2+3+100的值,苦力活!,while语句,while(条件表达式)循环体,只要表达式为true,就一直执行循环体,int counter=1;int sum=0;while(counter=100)sum=sum+counter;+counter;System.out.println(1+2+.+100=+sum);,判断循环条件,执行循环体,再判断循环条件,3.2 do-while语句,do-while语句,先执行一次循环体再判断循环条件,3.3 for语句,for循环主要用于按预定的次数执行语句或语句块,for(initialization;condition;iteration)循环体,增加或减少循环变量的一个表达式,必须是布尔表达式,最先执行,仅被执行一次,for语句,class Example3_15 public static void main(String args)int sum=0;for(int i=0;i=10;i+)sum=sum+i;System.out.println(1+2+.+10=+sum);,(1)给i赋值(2)判断i10(3)执行循环体(4)i+(5)回到步骤(2),3.4 break语句与continue语句,break语句除了可以用在switch语句中,还可以用在循环体中在循环体中遇见break语句时,立即结束循环,跳到循环外,执行循环结构后面的语句,class Example3_18 public static void main(String args)int i=0;for(i=1000;i=2000;i+)if(i%123=0)/判断是否能被123整除 break;/若能整除,则跳出for循环 System.out.println(第一个能被123整除的数是+i);,如果条件成立,执行break语句,break语句与continue语句,continue语句用于结束本次循环,即在循环体中遇见continue语句,则循环体中continue语句后面的语句不会执行,接着进行下一次循环的判定,class Example3_18 public static void main(String args)int i=0;for(i=1000;i=2000;i+)if(i%123=0)/判断是否能被123整除 continue;/若能整除,则进入下一次for循环 System.out.println(第一个能被123整除的数是+i);,如果条件成立,执行continue语句,3.5 嵌套循环,嵌套循环,class Nested public static void main(String args)int i,j;for(i=0;i 10;i+)for(j=i;j 10;j+)System.out.print(“*”);System.out.println();,控制外层循环,控制内层循环,小结,循环的执行方式是先判断还是先执行?break语句只能跳出一层循环吗?可以使用while的地方,一定能使用do-while和for语句吗?,总结,if-else语句if-else多级嵌套if-else内部嵌套switch开关特性default与breakwhile循环do-while循环for循环break跳出循环continue结束本次循环嵌套循环,