在一个程序执行的过程中,各条语句的
执行顺序
对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过
控制语句的执行顺序来实现我们想要的功能。
程序中,需要执行的代码,其结构主要分为以下三种
- 顺序结构
- 分支结构 if语句、switch分支语句
- 循环结构 for循环、while循环、do while循环
1、顺序结构
顺序结构就是最基本的流程控制,只要将代码从上到下,按照顺序依次编
写即可,大多数代码都是这样的结构,如图:
案例:
2、分支结构
1.if判断
语法一:
执行流程:
1.
计算
关系表达式
的值
2.
如果关系表达式的值为
true
,就执行语句体
3.
如果关系表达式的值为
false
,则不执行语句体
4.
继续执行
if
代码块后面的其他代码
执行流程图:
案例:
语法二:
执行流程:
1.
计算
关系表达式
的值
2.
如果关系表达式的值为
true
,就执行语句体
1
3.
如果关系表达式的值为
false
,就执行语句体
2
4.
继续执行
if
代码块后面的其他代码
执行流程图:
案例:
import
java
.
util
.
Scanner
;
//
从键盘录入年份值,判断并输出该年份是否为闰年
public static
void
main
(
String
[]
args
) {
Scanner sc
=
new
Scanner
(
System
.
in
);
int
year
=
sc
.
nextInt
();
/*
闰年判断
(4
年闰
&&
百年不闰
) || (400
年闰
)
*/
if
((
year
%
4
==
0
&&
year
%
100
!=
0
)
||
(
year
%
400
==
0
)) {
System
.
out
.
println
(
"
是闰年
"
);
}
else
{
System
.
out
.
println
(
"
不是闰年
"
);
}
}
注意事项:
如果有俩个
if
语句,那么它们俩是相互独立切互不影响的俩个结构
第一个
if
条件无论是
true
还是
false
,第二个
if
条都会继续判断,这个逻辑和if-else
是不同的
语法三:
执行流程:
1.
首先计算
关系表达式
1
的值
2.
如果表达式
1
的值为
true
,就执行语句体
1
;如果值为
false
就计算
关系表
达式
2
的值
3.
如果表达式
2
的值为
true
,就执行语句体
2
;如果值为
false
就计算
关系表
达式
3
的值
4. ....
5.
如果上面关系表达式结果都为
false
,就执行
else
代码
6.
如果中间有任何一个关系表达式为
true
,那么执行完对应的代码语句之
后,整个
if-elseif-else
退出
执行流程图:
案例:
注意事项:
从上到下依次判断,有一个判断为
true
执行了代码,那么后续判断都不再执行,
if
语句结束;如果判断都为
false
,则执行
else
语句代码。
课堂练习:
从键盘录入一个
hour
值,如果是
8
点
~12
点之间,那么就输出早上好,如果是
12
点
~14
点,则输出中午好,如果是
14
点
~18
点,则输出下午好,其他情
况,输出晚上好。
2.switch分支
switch
语句也称为
分支语句
,其和
if
语句有点类似,都是用来判断值是否相等,但
switch
默认只支持
byte
、
short
、
int
、
char
这四种类型的比较,
JDK8
中也允许
String
类型的变量做对比
语法:
执行流程:
基础案例: