流程控制
在程序的执行过程中,各条语句的执行顺序对程序的运行结果有着至关重要的影响。掌握Java
流程控制有助于我们编写代码、调试代码以及阅读别人代码。
在
Java
语言中,流程控制语句有
3
种:
顺序结构、分支结构
(也叫选择结构)和循环结构
。
顺序结构
顺序结构
是程序中最简单、最基本的结构,顺序结构没有特定的语法结构,它按照代码的先后顺序,依次执行
。程序中大多数的代码都是这样执行的。
下面的代码实现了如下需求:
输入
2
个整数,打印最大的数
public static void main(String[] args) {
//需求:输入2个整数,打印最大的那个整数
上面的代码就是顺序结构最直观的体现,代码自上而下,逐
条执行。
分支结构(选择结构)
分支结构也叫选择结构,它会根据条件的不同,执行不同的
后续语句。
分支结构的使用场景举例:
//先定义2个整型变量用于存放用户输入的值。变量的
初始值为0
int num1 = 0;
int num2 = 0;
//提示用户输入数据
System.out.print("请输入2个整数,用空格分
隔:");
//定义一个Scanner,用户接收用户输入的数据。
Scanner sc = new Scanner(System.in);
//提取用户输入的数据
num1 = sc.nextInt();
num2 = sc.nextInt();
//定义一个变量保存最大的数
int max = num1 > num2 ? num1 : num2;
System.out.println("最大的数是:" + max);
}
上面的代码就是顺序结构最直观的体现,代码自上而下,逐条执行。
分支结构(选择结构)
分支结构
也叫选择结构,它会根据条件的不同,执行不同的后续语句。
分支结构的使用场景举例:
1.
如果账号已经登录,可以发表评论;如果没有登录,跳转到登录页面进行登录。
2.
如果余额充足可以支付;如果余额不足,进入充值页面充值。
3.
如果是未成年人,游戏
2
个小时后自动下线。
4. ...
在
Java
中有
2
种语句可以实现分支。
1.
if
语句
2.
switch..case..
语句
循环结构
循环结构的特点是:特定条件下,代码可以反复执行。
循环结构的使用场景举例:
1.
新闻列表页面要显示
20
条新闻,这
20
条新闻是通过循环一
条一条放到页面上的。
2.
玩游戏时,网络不好的时候,重新连接服务器也是反复连
接多次,而不是连接一次就不连接了。
3.
数据报表页面,对数据进行求和。
4. ...
在
Java
中有
3
种语句可以实现循环。
1.
for
循环
2.
while
循环
3.
do..while
循环
不同的循环语句适用于不同的场景。
分支结构
if语句
if语句格式1
格式:
if(关系表达式){
语句体;
}
执行流程:
1.
首先计算关系表达式的值。
2.
如果关系表达式的值为
true
就执行语句体。
3.
如果关系表达式的值为
false
就不执行语句体。
4.
继续执行后面的语句。
if语句格式2
格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
1.
首先计算判定条件的值(往往是关系表达式或逻辑表达式)。
2.
如果判定条件的值为
true
,执行
if
语句体
1
,否则执行语句体2
。
3.
继续执行后面的语句。
if语句格式3
格式:
if(条件表达式1){
语句体1;
}else if(条件表达式2){
语句体2;
}else if(条件表达式3){
语句体3;
}
...
else{
语句体n+1;
}
执行流程:
if语句总结
1.
if
语句是编程中最常用的语句。
2.
无论是哪种
if
语句格式,判断条件都是 条件表达式或者逻
辑表达式。
3.
要学会根据情况分析使用哪种
if
语句格式。
switch..case语句
switch..case
分支语句,也被称为多路分支语句。
switch
本身的含义是开关。在
Java
中
switch..case
语句很像生活中的开关,按不同的开关按钮,有不同的效果。
switch..case的语法格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
switch..case的执行流程
1. 计算switch表达式的值。注意:与if语句不同,不在是true
和false,而是数值、字符、字符串等。
2. 表达式的值与某case的值一样时,执行对应case中的语句
体。
3. break用于结束switch语句,继续执行switch语句后面的代
码。
break;
...
default:
语句体n+1;
break;
}
switch..case的执行流程
1.
计算
switch
表达式的值。注意:与
if
语句不同,不在是
true和false
,而是数值、字符、字符串等。
2.
表达式的值与某
case
的值一样时,执行对应
case
中的语句体。
3. break
用于结束
switch
语句,继续执行
switch
语句后面的代码。
4.
如果没有任何一个
case
的值和表达式的值一致,执行default对应的语句体。
default
表示其他情况,即除了罗列的case
之外的所有情况。
break关键字
break
关键字有
2
个用途:
1.
用于
switch..case
语句中的
case
语句块里,作用是结束
switch
的执行。
2.
用于循环结构,结束循环。
---
循环的时候讲。case中也可以不写
break
,不写
break
的话,
switch
不会结束执行,而是顺序往下执行代码,直到遇到break
结束
switch
语句(或者顺序执行完整个switch..case
语句)。
除非特殊需求需要省去
break
,否则每个
case
都要写上
break
。
switch..case总结
1. switch..case
语句和
if
语句作用一样,都是实现分支。
2. swicth..case
语句中通过
break
关键字结束
switch
的执行。
3. switch
中表达式的值决定了进入哪个
case
执行。
4.
没有对应的
case
就执行
default
,
default
一般写在所有case后面。
分支结构总结
在
Java
语言中,分支结构一共有
2
种:
if
语句和
switch..case
语句。
if
语句有
3
种书写格式:
if
、
if..else
、
if..else if..else if..else
无论哪种if
格式,
if
后面表达式的值必须是一个
boolean
值,即true
或
false
。
switch..case
语句是多路分支,根据
switch
的值,决定进哪个case执行代码。没有对应的
case
就执行
default
。break用于结束
switch
的执行。虽然可以省略break
,但要慎重。