《第4章流程控制.ppt》由会员分享,可在线阅读,更多相关《第4章流程控制.ppt(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第4章流程控制 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第4章章 流程控制流程控制 本章要点本章要点n理解理解Java语言中复合语句的使用方法语言中复合语句的使用方法n掌握掌握if条件语句的使用方法条件语句的使用方法n了解了解if语句与语句与switch语句间的区别语句间的区别n掌握掌握while循环语句的使用方法循环语句的使用方法n掌握掌握dowhile循环语句的使用方法循环语句的使用方法n掌握掌握for语句的使用方法语句的使用方法n了解跳转语句的使用了
2、解跳转语句的使用第第4章章 流程控制流程控制n n4.1 复合语句复合语句n n4.2 分支结构分支结构n n4.3 循环语句循环语句n n4.4 跳转语句跳转语句主要内容主要内容4.1 复合语句复合语句nJava语言的复合语句是以整个块区为单语言的复合语句是以整个块区为单位的语句,所以又称位的语句,所以又称块语句块语句。n复合语句由开括号复合语句由开括号“”开始,闭括号开始,闭括号“”结束。结束。语句块可以语句块可以嵌套嵌套,嵌套层数无限制,嵌套层数无限制定义类时定义类时类体类体必须采用语句块形式必须采用语句块形式 定义方法时定义方法时方法体方法体必须采用语句块的形式必须采用语句块的形式4.
3、2 分支语句分支语句n4.2.1 if条件语句条件语句n4.2.2 switch多分支语句多分支语句 4.2.1 if条件语句条件语句1.简单的简单的if条件语句条件语句n格式:格式:if(布尔表达式布尔表达式)语句块语句块 falsefalsetruetrue表达表达式式语句块语句块1 11.简单的简单的if条件语句条件语句【例【例4-1】判断两个数的大小,将结果输出。判断两个数的大小,将结果输出。int x=12;int y=21;String outer=变量x小于y!;if(x y)outer=变量x大于y!;System.out.println(outer);2.ifelse语句语句
4、n格式:格式:if(表达件表达件)语句块语句块1;else 语句块语句块2;falsefalsetruetrue表达表达式式语句块语句块1 1语句块语句块2 22.ifelse语句语句【例【例4-2】判断考试成绩是否合格,将结果输判断考试成绩是否合格,将结果输出。出。int score=90;if(score=60)System.out.println(考试成绩及格!);else System.out.println(考试成绩不及格!);2.ifelse语句语句以条件运算符代替以条件运算符代替ifelseif(ab)System.out.println(The larger one is:+a
5、);else System.out.println(The larger one is:+b);System.out.println(The larger one is:“+(ab)?a:b);3.ifelse if多分支语句多分支语句if(表达式表达式1)语句块语句块1;else if(表达式表达式2)语句块语句块2;else if(表达式表达式n)语句块语句块n;else 语句块语句块n+1;3.ifelse if多分支语句多分支语句3.ifelse if多分支语句多分支语句【例【例4-3】判断两数大小,将结果输出。判断两数大小,将结果输出。int x=12;int y=21;if(x y
6、)System.out.println(变量x大于y!);else if(x=y)System.out.println(变量x等于y!);else System.out.println(变量x小于y!);4.2.1 if条件语句条件语句练习练习n给出一个年份,判断它是不是闰年。给出一个年份,判断它是不是闰年。n闰年闰年:能被能被4整除但不能被整除但不能被100整除,或整除,或者能被者能被400整除。整除。(year%4=0&year%100!=0)|(year%400=0)4.2.1 if条件语句条件语句练习练习n已知一个学生的分数,给出其分数等级。已知一个学生的分数,给出其分数等级。p90-
7、100分为分为A级;级;p80-89分为分为B级;级;p70-79分为分为C级;级;p60-69分为分为D级;级;p0-59分为分为F级级4.2.1 if条件语句条件语句练习练习 int testscore=76;char grade;if(testscore=90)grade=A;else if(testscore=80)grade=B;else if(testscore=70)grade=C;else if(testscore=60)grade=D;else grade=F;System.out.println(Grade=+grade);4.2.2 switch选择结构选择结构switc
8、h(表达式表达式)case 常量常量1:语句块语句块1;break;case 常量常量2:语句块语句块2;break;case 常量常量n:语句块语句块n;break;default:语句块语句块n+1;break;4.2.2 switch选择结构选择结构4.2.2 switch选择结构选择结构n已知一个学生的分数,给出其分数等级。已知一个学生的分数,给出其分数等级。p90-100分为分为A级;级;p80-89分为分为B级;级;p70-79分为分为C级;级;p60-69分为分为D级;级;p0-59分为分为E级级4.2.2 switch选择结构选择结构4.3 循环语句循环语句 n4.3.1 Wh
9、ile语句语句n4.3.2 do/while语句语句n4.3.3 for语句语句 4.3.1 while语句语句nwhile语句的一般形式为:语句的一般形式为:while(表达式表达式)语句块;语句块;语句块语句块表达表达式式falsefalsetruetruenwhile语句执行过程:语句执行过程:首先计算表达式,当表达式的值为首先计算表达式,当表达式的值为true时,时,执行一次循环体中的语句,重复上述操作执行一次循环体中的语句,重复上述操作到表达式的值为到表达式的值为false时退出循环。如果表时退出循环。如果表达式的值在开始时就为达式的值在开始时就为false,那么不执行,那么不执行循
10、环体语句直接退出循环。循环体语句直接退出循环。while语句的特点是:先判断表达式,后语句的特点是:先判断表达式,后执行语句。执行语句。4.3.1 while语句语句4.3.1 while语句语句【例【例4-5】计算从计算从1到到100之间所有整数的和,之间所有整数的和,将结果输出。将结果输出。int i=1;int sum=0;while(i=100)sum+=i+;System.out.println(sum);4.3.1 while语句语句n计算存款收益:假设银行中存款计算存款收益:假设银行中存款10000元,元,按按11.25%的利率,一年后连本带利将变为的利率,一年后连本带利将变为1
11、1125元。你若将此款继续存入银行,试问多元。你若将此款继续存入银行,试问多长时间就会连本带利翻一番?长时间就会连本带利翻一番?ndo-while语句的特点是先执行循环体,后语句的特点是先执行循环体,后判断循环条件是否成立,其一般形式为:判断循环条件是否成立,其一般形式为:do 语句块语句块;while(表达式表达式);4.3.2 do-while循环语句循环语句语句块语句块表达表达式式falsefalsetruetruendo-while语句执行过程如下语句执行过程如下首先执行一次循环体,然后再计算表达式,首先执行一次循环体,然后再计算表达式,如果表达式的值为如果表达式的值为true,则再执
12、行一次循环,则再执行一次循环体,重复上述操作,直到表达式的值为体,重复上述操作,直到表达式的值为false时退出循环。如果条件在开始时就为时退出循环。如果条件在开始时就为false,那么执行一次循环体语句后退出循环。那么执行一次循环体语句后退出循环。nwhile语句与语句与do/while语句的区别在于语句的区别在于前者循环体执行的次数可能是前者循环体执行的次数可能是0次,而后循环次,而后循环体执行的次数至少是体执行的次数至少是1次。次。4.3.2 do-while循环语句循环语句4.3.2 do-while循环语句循环语句【例【例4-6】计算从计算从1到到100之间所有整数的和,之间所有整数
13、的和,将结果输出。将结果输出。int i=1;int sum=0;do sum+=i+;while(i=100);System.out.println(sum);4.3.3 for循环语句循环语句nfor语句的一般形式为:语句的一般形式为:for(表达式表达式1;表达式表达式2;表达式表达式3)语句块语句块;1.for语句语句falsefalsetruetrue表达式表达式1 1表达式表达式2 2语句块语句块表达式表达式3 31.for语句语句1.for语句语句【例【例4-7】计算从计算从1到到100之间所有整数的和,之间所有整数的和,将结果输出。将结果输出。int sum=0;for(int
14、 i=1;i=100;i+)sum+=i;System.out.println(sum);nfor语句语句3个表达式均可省,但个表达式均可省,但”;”不能省。不能省。省略表达式省略表达式1。此时应在。此时应在for语句前面给循语句前面给循环控制变量赋初始值。环控制变量赋初始值。省略表达式省略表达式3。此时应在。此时应在for语句的循环体语句的循环体重改变循环控制变量,否则容易造成死循重改变循环控制变量,否则容易造成死循环。环。省略所有三个表达式。当省略所有三个表达式。当for语句中没有表语句中没有表达式达式2时,编译程序将解释为表达式时,编译程序将解释为表达式2为为true,循环将无限进行下去
15、。,循环将无限进行下去。1.for语句语句1.for语句语句n给定一个整数,输出它所有的因数给定一个整数,输出它所有的因数int n=28;for(int k=1;k=n;k+)if(n%k=0)System.out.print(k+);1.for语句语句n逗号运算符逗号运算符可用在可用在 for 循环控制表达式的循环控制表达式的初始化初始化和和递增递增两部分。两部分。在这两部分中可以存在多个由逗号分隔的在这两部分中可以存在多个由逗号分隔的语句,这些语句会被语句,这些语句会被依次计算依次计算。nforeach语句是语句是for语句的特殊简化版本。语句的特殊简化版本。n语法:语法:2.forea
16、ch语句语句foreach语句中的元素变量语句中的元素变量x,不必对其进行初始化,不必对其进行初始化for(元素变量元素变量x:遍历对象遍历对象obj)引用了引用了x的的java语句语句;nforeach语言的执行过程如下:语言的执行过程如下:1)自动指向)自动指向遍历对象遍历对象obj中的第一个元素;中的第一个元素;2)判断该元素是否存在,不存在则结束循环)判断该元素是否存在,不存在则结束循环3)把该元素的值赋给)把该元素的值赋给元素变量元素变量x;4)执行循环体语句块;)执行循环体语句块;5)自动指向下一个元素,之后从第)自动指向下一个元素,之后从第(2)开始重开始重复执行。复执行。2.f
17、oreach语句语句n【例【例4-8】遍历输出一维数组中各元素。】遍历输出一维数组中各元素。2.foreach语句语句int array=1,2,3,4,5;/定义一维数组System.out.println(数组array中元素:);for(int i:array)System.out.print(i+);4.4 跳转语句跳转语句n4.4.1 break语句语句n4.4.2 continue语语句句n4.4.3 return语句语句4.4.1 break语句语句n功能功能跳出循环,不再执行剩余部分跳出循环,不再执行剩余部分n适用场合适用场合在在switch 结构中终止结构中终止switch语
18、句的执行语句的执行在在for循环及循环及while循环结构中,用于终循环结构中,用于终止止break语句所在的语句所在的最内层循环最内层循环;与标号一同使用时将与标号一同使用时将跳出标号所标识的跳出标号所标识的循环循环4.4.1 break语句语句【例【例4-8】计算从计算从1到到100之间所有整数的和,之间所有整数的和,如果和大于如果和大于1000,则退出循环。,则退出循环。int sum=0;for(int i=1;i1000)break;System.out.println(sum);4.4.1 break语句语句nbreak与与label一同使用举例一同使用举例outer:for(in
19、t i=1;i=9;i+)for(int j=1;j i)break;if(i=6)break outer;System.out.print(i+*+j+=+i*j+);System.out.println();4.4.2 continue语句语句ncontinue语句语句不带标号的不带标号的continue语句:语句:终止当前这一终止当前这一轮的循环,跳出本轮循环剩余的语句,直轮的循环,跳出本轮循环剩余的语句,直接进入接进入当前循环的下一轮当前循环的下一轮带标号的带标号的continue语句:语句:使程序的流程直使程序的流程直接转入接转入标号标明的循环层次标号标明的循环层次4.4.2 con
20、tinue语句语句n不带标号的不带标号的continue语句语句在在while或或do-while循环中,会使流程直循环中,会使流程直接跳转至接跳转至条件表达式条件表达式在在for循环中,会使流程跳转至循环中,会使流程跳转至表达式表达式update-expression,计算并修改循环变计算并修改循环变量后再判断循环条件量后再判断循环条件4.4.2 continue语句语句n简单的简单的continue语句举例语句举例int i;for(i=1;i=10;i+)if(i%5=0)continue;System.out.println(i);System.out.println(i);4.4.2
21、 continue语句语句n带标号的带标号的continue语句语句格式如下格式如下continue label;标号标号label应该定义在程序中某一循环语句应该定义在程序中某一循环语句前面,用来标志这个循环结构前面,用来标志这个循环结构4.4.2 continue语句语句n九九乘法表九九乘法表outer:for(int i=1;i10;i+)for(int j=1;j10;j+)if(ij)System.out.println();continue outer;System.out.print(+i+*+j+=+i*j);4.4.3 return语句语句n退出当前函数并从该函数返回一个值。退出当前函数并从该函数返回一个值。return expression;n可选项可选项 expression 参数是要从函数返回的参数是要从函数返回的值。假如省略,则该函数不返回值。值。假如省略,则该函数不返回值。实验作业实验作业n编程求编程求N的阶乘的阶乘,要求判断要求判断N的值是否符合的值是否符合要求要求.n编程求素数,求编程求素数,求20个素数并分别显示在个素数并分别显示在4行文本中,每行显示行文本中,每行显示5个素数。个素数。n输出一个等腰三角形,要求空心效果。输出一个等腰三角形,要求空心效果。