收藏 分享(赏)

Java第四讲 控制结构.ppt

上传人:jw66tk88 文档编号:6849742 上传时间:2019-04-24 格式:PPT 页数:35 大小:252KB
下载 相关 举报
Java第四讲 控制结构.ppt_第1页
第1页 / 共35页
Java第四讲 控制结构.ppt_第2页
第2页 / 共35页
Java第四讲 控制结构.ppt_第3页
第3页 / 共35页
Java第四讲 控制结构.ppt_第4页
第4页 / 共35页
Java第四讲 控制结构.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、第4讲 控制结构,语句和块 分支(选择)结构if、ifelse、switch 循环结构while、for、dowhile 跳转语句break、continue、return,JAVA语言的三种基本控制结构,语句,程序中的语句可以分为两种类型:简单语句和流程控制语句。 Java中常用的有下面几类语句: 声明语句,如:char a=A; 表达式语句,如:i+;System.out.println(“Hello”) 分支语句,如: ifelse、switch 循环语句,如: while、dowhile 、 for 跳转语句,如:break、continue 异常语句,如:try-catch-fina

2、lly 空语句,如: ;,块,块是用一对“ ”将零个或多个语句括起来,就构成一个块(也称复合语句)。 程序中的类体及方法体也都是块。 class UseBlock public static void main(String args)int a=5;a+=8;int b=6;b=b+a;System.out.println(a+“ “+b);System.out.println(a+“ “+b); 结合前面所学知识(变量的作用域),上面的程序有错误吗?,分支结构,if单选结构 if(布尔表达式) 语句块;可以是一条或多条语句,在只有一条语句的情况下,可以不用“ ” 如:学生的成绩studen

3、tGrade=60分,则输出“成绩及格了” if(studentGrade=60) System.out.println(“成绩及格了”);,分支结构,实例:求两个数的最大值。(使用单分支结构) int n1=45326,n2=54321,max; max=n1; if(n2=n1)max=n2; System.out.println(“max=”+max);,分支结构,if-else if(布尔表达式) 语句块1;可以是一条或多条语句,在只有一条语句 的情况下,可以不用“ ” else 语句块2; ,分支结构,如:学生的成绩studentGrade=60分,则输出“恭喜!成绩及格了”,否则输

4、出“遗憾!成绩不及格” if(studentGrade=60) System.out.println(“恭喜!”);System.out.println(“成绩及格了”); else System.out.println(“遗憾!”);System.out.println(“成绩不及格”); ,分支结构,实例:求两个数的最大值。(使用双分支结构) int n1=45326,n2=54321,max; if(n1=n2)max=n1; elsemax=n2; System.out.println(“max=”+max);,分支结构,嵌套的if-else结构 if(布尔表达式1) 语句块1; el

5、se if(布尔表达式2) 语句块2; else if(布尔表达式N) 语句块N; else 语句块Else; ,分支结构,如:学生的成绩studentGrade=90分,则输出等级“A”, studentGrade=80分,则输出等级“B”, studentGrade=70分,则输出等级“C”, studentGrade=60分,则输出等级“D”, 其他成绩,则输出等级“F”。if(studentGrade=90)System.out.println(“A”); else if(studentGrade=80)System.out.println(“B”); else if(studentG

6、rade=70)System.out.println(“C”); else if(studentGrade=60)System.out.println(“D”); else System.out.println(“F”);,分支结构,switch多分支结构 switch ( 表达式) case 值1 :statements1;break; case valueN :statementsN;break; default :defaultStatements; ,将括号里“表达式”的值同每种情况列出的值做比较,若相等就执行后面的语句;若不等,就执行default语句。 注意:“表达式”必须为byt

7、e、short、int或char类型。每个case语句后的值必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量),重复的case值是不允许的。通常在每一种case情况后都应使用break语句。否则,第一个相等情况后面所有的语句都会被执行,这种情况被称为落空。,分支结构,实例1:根据考试等级( “A” 表示90分以上,“B”表示8089分, “C”表示7079分, “D”表示6069分,“E”表示60分以下)输出百分制分数段。 实例2:输入一个月份,判断是属于一年中的哪个季节(春、夏、秋、冬),循环结构,循环结构是在满足一定条件下反复执行某段程序的流程结构,一个循环一般包括四个

8、部分: 循环的初始化:用来设置循环的一些初始条件。 循环条件:一般为布尔表达式 循环体:重复执行的一段程序,可以是一个语句,也可以是一个语句块 迭代部分:在本次循环结束,下一次循环开始前执行的是循环变量递变的语句。常用的形式为一个计数器递增或递减。,循环结构,while语句(P96) while(条件表达式)循环体; 注意(1)没有在循环体中提供使条件表达式最终变为假的语句,这种循环就永远不会终止,称为“死循环”(2)该循环体最少执行多少次?,循环结构,实例:计算1+2+3+100 int i=1,sum=0; while(i=100) sum=sum+i;i+; System.out.pri

9、ntln(“1+2+3+100=”+sum);,循环结构,实例:用while循环语句计算:1!+2!+3!+10! int i=1,p=1,sum=0; while(i=10) p=p*i;sum=sum+p;i+; System.out.println(“1!+2!+3!+10!=”+sum);,循环结构,do-while语句(P133) do 循环体; while(条件表达式); 注意(1) while(条件表达式)后有“;”(2)该循环体至少被执行1次,这是和while的最大区别。故一般称while循环为“当型”循环(先判断后执行); do-while循环为“直到型”循环(先执行后判断)

10、。,循环结构,实例:将键盘输入的数据累加求和,直到输入0为止。 BufferedReader br=new BufferedReader(new InputStreamReader(System.in); String s; int i,sum=0; System.out.println(“plaese input a number,input 0 to stop“);dos=br.readLine();i=Integer.parseInt(s);sum=sum+i;System.out.println(“the sum is:“+sum);while(i!=0);,循环结构,for语句(P1

11、26)for(初始化;循环继续条件;增量) 语句; For结构应用举例(课本P129) 注意: for语句中的循环变量在for结构头的初始化部分定义时,在此结构外使用该循环变量是一个语法错误。,循环结构,实例:计算1+2+3+100计算1!+2!+3!+10!计算2+4+6+100,循环结构,【例】求1000之内的所有水仙花数。所谓水仙花数,是指一个三位数,它的各位数字的立方和等于这个数本身。(如:371)程序分析:用for循环每一次循环检查100到999中的一个三位数n,取出n的个位、十位和百位分别存入k,j,i三个整形变量中。然后利用系统定义好的方法Math.pow()计算i,j,k的三次

12、方并相加,若得到的和等于n,则输出这个水仙花数,否则n加1进入下一次循化。循环结束时将得到所有的水仙花数。其中用m计算水仙花数的当前找到个数。,循环结构,public class Narcissus public static void main(String args) int i,j,k,m=1;for (int n=100;n1000;n+)i=n/100; j=(n-i*100)/10; k=n%10; if (Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3)=n) System.out.println(“找到第“+m+“水仙花数:“+n); ,循环结

13、构,下列程序的输出结果是什么? class TuXing public static void main(String args)for(int i=1;i=5;i+) for(int j=1;j=5-i;j+) System.out.print(“ “); for(int k=1;k=2*i-1;k+) System.out.print(“*“); System.out.println(); ,循环结构,【例】求3200之间的所有素数。素数是只能被1和该数本身整除的数。 public class PrimeNumber public static void main(String args

14、) System.out.println(“*3到200之间的所有素数*“);int n=0;for(int i=3;i=200;i+=2) int k=(int)Math.sqrt(i);boolean isPrime=true;for(int j=2;j=k;j+) if(i%j=0) isPrime=false;if(isPrime) System.out.print(“ “+i);n+;if(n%10=0) System.out.println(); ,三种循环语句的比较:,三种循环都可以用来处理同一个问题,一般可以相互替代。 while和do-while循环的循环体中应包括使循环趋于

15、结束的语句。for语句功能更强大。 用while和do-while循环时,循环变量初始化操作应在while和do-while语句之前完成,而for语句可以在表达式1中实现循环变量的初始化。 当循环次数明确时,用for、while比较方便;当不肯定时就用while或do-while。,break,在前面的switch结构中,break语句终止switch结构体语句的执行,跳到switch结构后面的语句执行。 同样,在循环结构中,break语句结束循环语句的执行(提前结束),跳到循环结构后面的语句执行。,break,如求200300之间的所有素数并输出。(PrimeNumber2.java)Sys

16、tem.out.println(“*200-300*“);int i,j;for(i=200;ii-1)System.out.print(“ “+i); ,带标号的break,带标号的break语句从标号所标记的语句块中跳出来,直接执行标号语句块后面的语句。 注意:break语句必须包含在标号所标记的语句块内 标号名可以是任何合法的标识符,带标号的break,BreakDemo.java boolean b=true;first:second:third: System.out.println(“1“);if(b) break second; System.out.println(“2“);

17、System.out.println(“3“); System.out.println(“4“);,continue,continue语句只用在for、while、do-while循环体中,它的功能是:使得程序跳过循环体中continue语句后剩下的部分,终止当前这一次循环的执行,直接进行下一次循环条件的判断。,continue,如使用不带标号的continue语句和循环语句,求出1100之间的所有奇数的和。(JiShuHe.java)int sum=0;for(int i=1;i=100;i+)if(i%2=0)continue;sum=sum+i;System.out.println(sum);,continue,int i=1,sum=0;while(i=100)if(i%2=0)continue;sum=sum+i;i+;System.out.println(sum);,带标号的continue,带标号的continue的功能:无条件地使流程转移到带标号的循环语句的下一次循环条件判定部分。,带标号的continue,ContinueLabel.java outer:for(int i=0;ii)System.out.println();continue outer; System.out.print(i*j)+“ “);System.out.println();,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报