Java流程控制结构(四)
创始人
2024-01-21 17:00:16
0

流程控制结构

    • 1、顺序控制
    • 2、分支控制
      • 2.1、if-else分支
      • 2.2、switch分支
    • 3、循环控制
      • 1、for循环
      • 2、while循环
      • 3、do-while循环
      • 4、多重循环
    • 4、跳出控制语句

在程序中,程序运行的流程控制决定程序是如何运行的。主要有三大流程控制语句(顺序控制、分支控制、循环控制)

1、顺序控制

程序从上到下逐行执行,中间没有任何判断和跳转。

public class Test{int num1 = 12; // 先运行这行int num2 = num1 + 2; // 再运行这行
}

 

2、分支控制

2.1、if-else分支

单分支: 当条件表达式为 ture 时,就会执行 {} 中的代码,为 false ,则不执行。如果{}中只有一条语句,则不用{}。

if(条件表达式){执行代码块;(一条或多条语句)
}

双分支: 当条件表达式成立,即执行代码块1,否则执行代码块2。

if(条件表达式){执行代码块1;(一条或多条语句)
}
else{执行代码块2;(一条或多条语句)
}

多分支: 当条件表达式1成立时,执行代码块1,如果表达式1不成立,才去判断表达式2是否成立,如果表达式2成立,就执行代码块2,以此类推,如果所有的表达式都不成立,则执行else的代码块。注意:只能有一个执行入口;多分支可以没有else。

if(条件表达式1){执行代码块1;(一条或多条语句)
}
else if(条件表达式2){执行代码块2;(一条或多条语句)
}
...
else{执行代码块n;(一条或多条语句)
}

嵌套分支: 在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支结构称为内层分支,外面的分支结构称为外层结构。嵌套最好不要超过3层,因为会影响可读性。

if(){if(){// if-else...}else{// if-else...}
}

 

2.2、switch分支

语法格式:

switch(表达式){case 常量1: // 语句块1;break;case 常量1: // 语句块1;break;...case 常量n: // 语句块n;break;default:// 语句块;break;
}

上述格式说明: switch关键字表示switch分支;表达式对应一个值;case常量1:当表达式的值等于常量1,就执行语句块1;break:表示退出switch;如果和case常量1匹配,就执行语句块1,如果没有匹配,就继续匹配case常量2,以此类推,如果一个都没有匹配上,就执行default中的语句块。

switch注意事项及细节:

1:表达式数据类型,应与case后的常量一致,或者是可以自动转成可以互相比较的类型
2:switch中表达式的返回值必须是:byte,short,int,char,enum,String
3:case子句中的值必须是常量或常量表达式,而不能是变量
4:default子句是可选的,当没有匹配的case时,执行default
5:break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break;

switch与if的选择:

1:如果判断的具体数值不多,而且符合switch表达式的返回值数据类型,则建议使用switch语句。(等值判断)
2:如果是对区间判断,对结果为boolean类型判断,则使用if,if的使用范围更广。(区间/等值判断)
 

3、循环控制

1、for循环

语法格式:

for(循环变量初始化;循环条件;循环变量迭代){循环操作(一条或多条语句);
}

上述格式说明: for关键字表示循环控制。for有四要素:循环变量初始化、循环条件、循环变量迭代、循环操作。如果循环操作只有一条语句,则可以省略{}。

注意事项及细节:

1:循环条件是返回一个布尔值的表达式。
2:for(;循环判断条件;)中的变量初始化和变量迭代可以写到其它地方,但是两边的分号不能省略,for(;;){}表示的是无限循环。
3:循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开;变量迭代语句也可以有多条,中间用逗号隔开。
 

2、while循环

语法格式:

循环变量初始化;
while(循环条件){循环操作;循环变量迭代;
}

注意事项及细节: while循环也有四要素,只是放的位置和for不一样。循环条件是返回一个布尔值的表达式,while循环是先判断再执行语句。
 

3、do-while循环

语法格式:

循环变量初始化;
do{循环操作;循环变量迭代;
}while(循环条件);

注: do while是关键字,它也有循环四要素,只是位置不一样;先执行,再判断,也就是说,至少会执行一次;要以分号结尾。
 

4、多重循环

介绍:

1:将一个循环放在另一个循环体内,就形成了嵌套循环,最好不要嵌套超过3层,会影响可读性。
2:实质上,嵌套循环就是把内层循环当成外层循环的循环体,当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
3:设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。

示例:

// 输出一个空心等腰三角形
int totalLevel = 10; // 该变量控制行数
for(int a = 1;a <= totalLevel;a++){for(int b = totalLevel;b > a;b--){System.out.print(" "); }for(int c = 1;c <= (2*a-1);c++){if(c == 1 || c == (2*a-1) || a == totalLevel){System.out.print("*"); }else{System.out.print(" "); }}System.out.println(""); 
}

 

4、跳出控制语句

break: 用于终止某个语句块的执行,一般使用在switch或者循环中。

{...break; ...
}

注意事项和细节: break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块

label1:{
label2:		{
label3:			{...break label2;...}}}
// 1. break语句可以指定退出哪层
// 2. label1是标签,名字由程序员指定,break指定到哪个label就退出到哪里
// 3. 在实际开发中,尽量不要使用标签
// 4. 如果没有指定break,默认退出最近的循环体

continue: 用于结束本次循环,继续执行下一次循环。

{...continue;...
}

注意事项和细节: continue语句出现在多层嵌套的语句块中时,可以通过标签指明要跳过的是哪一层循环,与前面的标签的使用规则一样。


return: 使用在方法内,表示跳出所在的方法,使用在main方法内,则退出程序。

{...return;...
}

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...