第三章 流程控制_控制程序流程图

(90) 2024-06-22 08:01:01

3.1 程序结构

3.2条件语句

3.2.1  if条件语句

例3.2两种情况都是正确的

例3.2 拨打电话

3. if...else if多分支语句

例3.3使用if...else语句判断变量的值来定输出结果

例3.4在项目中创建类Getifese,在主方法中定义变量,使用if..else if多分支语句通过断x的值决定输出结果。

4. if语句的嵌套

例3.5判断是否是闰年

 例3.6判断是否是闰年,用一条逻辑语句进行判断

switch语句

 例3.7使用switch语句判断星期,并打印对应的英文

例3.8创建成绩类,使用Scanner类在控制台输入分数, 图3.12判断星期并打印出脸 例3.publ然后用switch语句判断输入的分数属于哪类成绩。10分、9分属于优,8分属于良,7分、6分属于及格,5分、4分、3分、2分、1分、0分均为不及格。

例3.9 通过switch语句根据字符串str的值,输出不同的提示信息。

3.3循环语句

3.3.1  while循环语句

例3.10在项目中创建类Cycle,在主方法中通过while循环将整数1—100相加

3.2  do...while循环语句

例3.11 在项目中创建类Cycle

3.3  while 与 do...while 比较 

例3.12使用do..while循环输出J的值

例3.13使用while循环输出J的值

例3.14 使用for循环完成1—100的相加运算

3.5  foreach语句 

 例3.15在项目中创建类Repetition,在主方法中定义一维数组,并使用foreach语句遍历

例3.16使用嵌套的for循环输出乘法口诀

 3.4跳转语句

例3.17输出1—20的第一个偶数,使用break跳出循环

例3.18在嵌套的循环中使用break,跳出内层循环

例3.19使用带有标签的break跳出外层循环

 3.4.2 continue 语句

例3.20输出1—20的偶数使用continue语句跳出循环

                                    3.1 程序结构

顺序结构、选择结构和循环结构是结构化程序设计的3种基本结构,是各种复杂程序的基本构造单元。图3.1展示了这3种程序结构的基本理念,其中,第一幅图是顺序结构的流程图,它就是按照书写顺序执行的语句构成的程序段;第二幅图是选择结构的流程图,它主要根据输入数据和中间结果

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第1张

3.2条件语句
   在Java中,条件语句主要包括if语句和switch语句两种

3.2.1  if条件语句
        if条件语句主要用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行
另外的语句。
        使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句;若为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句、if...else 语句和 if...else if多分支语句。

例3.2两种情况都是正确的

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第2张

例3.2 拨打电话 

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第3张

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第4张 

3. if...else if多分支语句

if...else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理;如果满足另一种条件,则进行另一种处理”

 第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第5张

例3.3使用if...else语句判断变量的值来定输出结果 

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第6张

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第7张 

例3.4在项目中创建类Getifese,在主方法中定义变量,使用if..else if多分支语句通过断x的值决定输出结果。 

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第8张

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第9张 

 4. if语句的嵌套

前面讲过三种形式的条件语句,这三种形式的条件语句都可以嵌套条件语句。例如,在第一形式的条件语句中嵌套第二种形式的条件语句。形式如下:\

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第10张

在第二种形式的条件语句中嵌套第二种形式的条件语句。形式如下:

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第11张 

条件语句可以有多种嵌套方式,可以根据具体需要进行设计,但一定要注意逻辑关系

例3.5判断是否是闰年

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第12张

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第13张 

                                                     switch语句
switch语句中参数必须是整型,字符型,枚举类型和字符串类型,常量值1~n必须是与参数兼容的数据类型.

        switch 语句首先计算参数的值,如果参数的值和某个case 后面的常量表达式相同,则执行该 case吾句后的若干个语句,直到遇到 break 语句为止。此时如果该 case 语句中没有 break 语句,将继续执行后面 case 中的若干个语句,直到遇到 break 语句为止。若没有任何一个常量表达式与参数的值相同,则执行 default 后面的语句。
        break 的作用是跳出整个 switch 语句。
        default 语句是可以不写的,如果它不存在,而且 switch 语句中表达式的值不与任何 case 的常量值相同,switch 则不做任何处理。

以一个较简单明了的方式来实现“多选一”的选择。 语法如下
 

switch(用于判断的参数){ case 常量表达式1:语句1;[break;] case 常量表达式2:语句2;[break;]...... case 常量表达式n:语句n;[break;] default:语句n+1;[break;] }

 switch语句首先计算参数的值,如果参数的值和某个case后面的常量表达式相同,则执行该case语句后的若干个语句,直到遇到break语句为止。此时如果该case语句中没有break语句,将继续执行后面case中的若干个语句,直到遇到break语句为止。若没有任何一个常量表达式与参数的值相同,则执行default后面的语句。
break的作用是跳出整个switch语句。
default语句是可以不写的,如果它不存在,而且switch语句中表达式的值不与任何case的常量值相同,switch则不做任何处理。switch语句的执行流程如图3.11所示。
第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第14张

public class GetSwitch { public static void main(String[] args) { int week=2;//定义int型变量week switch (week) { case 1://定义case语句中常量为1 System.out.println("Monday"); break; case 2://定义case语句中常量为2 System.out.println("Tuesday"); break; case 3://定义case语句中常量为3 System.out.println("Wednesday"); break; case 4://定义case语句中常量为4 System.out.println("Thursday"); break; case 5://定义case语句中常量为5 System.out.println("Friday"); break; case 6://定义case语句中常量为6 System.out.println("Saturday"); break; case 7://定义case语句中常量为7 System.out.println("Sunday"); break; default: System.out.println("Sorry,I don't Know"); } } }

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第15张 

例3.8创建成绩类,使用Scanner类在控制台输入分数, 图3.12判断星期并打印出脸 例3.publ
然后用switch语句判断输入的分数属于哪类成绩。10分、9分
属于优,8分属于良,7分、6分属于及格,5分、4分、3分、2分、1分、0分均为不及格。


  1. 第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第16张

例3.9 通过switch语句根据字符串str的值,输出不同的提示信息。


  1. 第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第17张

3.3循环语句
        循环语句就是在满足一定条件的情况下反复执行某一个操作。在Java中提供了4种常用的循环语句,分别是while语句、do...while 语句、for 语句和 foreach 语句,其中,foreach 语句是 for 语句的特殊简化版本。

3.3.1  while循环语句
        While语句的循环方式为利用一个条件来控制是否要继续反复执行这个语句

例3.10在项目中创建类Cycle,在主方法中通过while循环将整数1—100相加

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第18张

3.2  do...while循环语句
        do...while 循环语句与 while 循环语句类似,它们之间的区别是 while 语句为先判断条件是否成立再执行循环体,而 do...while 循环语句则先执行一次循环后,再判断条件是否成立。也就是说 do...while 循环语句中“{}”中的程序段至少要被执行一次。

例3.11 在项目中创建类Cycle
 

 

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第19张

3.3  while 与 do...while 比较 
        可以通过设置起始循环条件不成立的循环语句来观察 while 和 do...while 的不同。将变量i初值设置为0,然后循环表达式设置为i>1,显然循环条件不成立。循环体执行的是对变量j的加1这算,通过输出变量j在循环前的值和循环后的值进行比较。

例3.12使用do..while循环输出J的值

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第20张

例3.13使用while循环输出J的值 

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第21张

例3.14 使用for循环完成1—100的相加运算 

public class AdditiveFor { public static void main(String[] args) { int sum=0; int i; for(i=1;i<=100;i++) { sum+=i; } System.out.println("the result :"+sum); } }

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第22张

 

3.5  foreach语句 
        foreach 语句是 for 语句的特殊简化版本,但是 foreach 语句并不能完全取代 for 语句,然而任何 
        foreach 语句都可以改写为 for 语句版本。foreach 并不是一个关键字,习惯上将这种特殊的 for 语句格式称之为foreach语句。foreach 语句在遍历数组等方面为程序员提供了很大的方便。

 例3.15在项目中创建类Repetition,在主方法中定义一维数组,并使用foreach语句遍历

public class Repetition { public static void main(String[] args) { int arr[]= {7,10,1};//声明一维数组 System.out.println("一维数组中的元素分别为");//输出信息 for(int x :arr) { System.out.println(x); } } }

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第23张

例3.16使用嵌套的for循环输出乘法口诀 

 

 

public class Multip { public static void main(String[] args) { int i, j;//创建两个整数变量 for(i=1; i<10;i++) {//输出九行 for(j=1;j<i+1;j++) {//输出行数相等的列 System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.println();//换行 } } }

 第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第24张

 3.4跳转语句
跳转语句包含两方面的内容,一方面是控制循环变量的变化方式,也就是让循环判断中的逻关系表达式变成false,从而达到终止循环的效果;一方面是控制循环的跳转。控制循环的跳转满用到break和coninue 两个关键字,这两条跳转语句的跳转效果不同,break是中断循环,conting是直接执行下一次循环。
3.4.1 break 语句
营一视,近视频 使用break语句可以跳出switch结构。在循环结构中,同样也可用break语句跳出当前循环体
从而中断当前循环。
第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第25张

例3.17输出1—20的第一个偶数,使用break跳出

public class BreakTest { public static void main(String[] args) { for(int i=1; i<20;i++) { if(i%2==0) {//如果i是偶数 System.out.println(i);//输出i的值 break;//跳入下一循环 } } System.out.println("---end---"); } }

循环 

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第26张

例3.18在嵌套的循环中使用break,跳出内层循环 

public class BreakInside { public static void main(String[] args) { for(int i=0;i<3;i++) { for(int j=0;j<6;j++) { if(j==4) {//如果J等于4的时候就结束内循环 break; } System.out.println("i="+i+" j="+j); } } } }

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第27张

例3.19使用带有标签的break跳出外层循环 

public class BreakOutside { public static void main(String[] args) { Loop: for(int i=0;i<3;i++) {//在for循环前用标签标记 for(int j=0;j<6;j++) { if(j==4) {//如果J等于4的时候就结束内循环 break Loop;//跳出Loop标签标记的循环体 } System.out.println("i="+i+" j="+j); } } } }

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第28张

 3.4.2 continue 语句
continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue语句后,首先执行循环的增量部分,然后进行条件测试。在while和do..while循环中,continue语句使控制直接回到条件测试部分。
在3种循环语句中使用continue语句的形式如图3.31所示。

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第29张

public class Continue { public static void main(String[] args) { for(int i=1;i<20;i++) { if(i%2!=0) {//如果i不是偶数 continue;//跳入下一循环 } System.out.println(i); } } }

 第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第30张

                                                  本章小结
本章介绍了流程控制语句(条件语句、循环语句和跳转语句);通过使用if与switch语句,可以基于布尔类型的测试,将一个程序分成不同的部分:通过 while、do..while 循环语句和for循环语句,可以让程序的一部分重复执行,直到满足某个终止循环的条件;for和while一样是先判断再执行,for就是来拯救大家的,for用更加简单的语句解决了while的问题for(初始化;条件1;条件2){循环体};使用跳转语句可以使条件语句和循环语句变得更加灵活。

“顺序结构”代表“先执行a,再执行b”的逻辑。
“条件判断结构”代表“如果…,则…”的逻辑。
“循环结构”代表“如果…,则重复执行…”的逻辑。

第三章 流程控制_控制程序流程图 (https://mushiming.com/)  第31张

 

THE END

发表回复