目录
一、分支结构
1. if 语句(三种格式)
分支结构用于根据 条件判断 决定程序执行路径,核心是 “条件成立则执行某段逻辑,不成立则走其他分支(或不执行)”。
① 单分支 if(格式 1)
if (关系表达式) {
语句体;
}
- 语法解释:
关系表达式
:结果必须是boolean
类型(true
/false
),比如age > 18
、score == 100
。- 若表达式结果为
true
,则执行{}
里的语句体
;若为false
,则跳过{}
,继续执行后续代码。
- 示例:
int age = 20;
if (age >= 18) {
System.out.println("已成年");
}
// 条件成立,输出:已成年
② 双分支 if-else(格式 2)
if (关系表达式) {
语句体1;
} else {
语句体2;
}
- 语法解释:
- 先判断
关系表达式
,结果为true
执行语句体1
;为false
执行语句体2
。 - 两个分支 必走其一 ,走完后继续执行后续代码。
- 先判断
- 示例:
int score = 59;
if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// 条件不成立,输出:不及格
③ 多分支 if-else if-else(格式 3)
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
} // 可继续扩展 else if
else {
语句体n+1;
}
- 语法解释:
- 从上到下依次判断
关系表达式
,遇到第一个结果为true
的表达式 ,执行对应语句体
,后续else if
/else
不再判断。 - 若所有
关系表达式
都为false
,则执行else
里的语句体n+1
。
- 从上到下依次判断
- 示例:
int grade = 85;
if (grade >= 90) {
System.out.println("优秀");
} else if (grade >= 80) {
System.out.println("良好");
} else if (grade >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// 条件 grade >= 80 成立,输出:良好
2. switch 语句
用于 多值匹配场景 ,根据表达式结果,跳转到对应 case
执行逻辑。
switch (表达式) {
case 值1:
语句体1;
break; // 可选,作用是“跳出 switch”,若省略会继续执行后续 case
case 值2:
语句体2;
break;
// ... 可继续扩展 case
default:
语句体n+1;
break;
}
- 语法解释:
表达式
:结果类型支持byte
/short
/int
/char
,以及String
(Java 7+)、枚举等有限类型 。- 程序先计算
表达式
的值,然后匹配case
后的值:- 匹配到某个
case
,执行对应语句体
;若遇到break
,直接跳出switch
。 - 若省略
break
,会 “穿透” 执行后续case
的语句体
(直到遇到break
或结束)。 - 所有
case
都不匹配时,执行default
里的语句体n+1
(default
也可省略)。
- 匹配到某个
- 示例:
int day = 3;
switch (day) {
case 1:
System.out.println("周一");
break;
case 2:
System.out.println("周二");
break;
case 3:
System.out.println("周三");
break;
default:
System.out.println("其他");
}
// 匹配 case 3,输出:周三
二、循环结构
循环结构用于 重复执行某段逻辑 ,核心是 “满足条件就持续循环,不满足则退出”。
1. for 循环
适合 已知循环次数 的场景,语法简洁,把初始化、条件判断、步长控制集中在头部。
for (初始化语句; 条件判断语句; 条件控制语句) {
循环体语句;
}
- 语法拆解:
- 初始化语句:循环前执行 一次 ,用于声明 / 赋值循环变量(如
int i = 0
)。 - 条件判断语句:每次循环前执行,结果为
boolean
类型。true
则进入循环体,false
则退出循环。 - 条件控制语句:每次循环体执行完后执行,通常用于改变循环变量(如
i++
让变量递增)。 - 循环体语句:满足条件时重复执行的逻辑,需用
{}
包裹(单行时可省略,但建议保留以增强可读性)。
- 初始化语句:循环前执行 一次 ,用于声明 / 赋值循环变量(如
- 执行流程(对应流程图):
初始化语句
→ 判条件判断语句
(false
则退出)→ 执行循环体语句
→ 执行条件控制语句
→ 回到条件判断语句
重复判断... - 示例:
// 输出 0~4(循环 5 次)
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// 执行流程:
// i=0 → 条件 true → 输出 0 → i=1
// i=1 → 条件 true → 输出 1 → i=2
// ... 直到 i=5 → 条件 false → 退出
2. while 循环
适合 循环次数不明确 、靠条件动态控制的场景,语法更灵活。
// 初始化语句(可写在外部)
while (条件判断语句) {
循环体语句;
条件控制语句; // 需手动维护,否则可能死循环
}
- 语法解释:
初始化语句
一般写在while
外(如int i = 0;
),仅执行一次。- 先判断
条件判断语句
,true
则执行循环体语句
+条件控制语句
;false
则直接退出。 - 若省略
条件控制语句
,循环变量不改变,可能导致 死循环(需避免)。
- 执行流程(对应流程图):
初始化语句
→ 判条件判断语句
(false
则退出)→ 执行循环体语句
+条件控制语句
→ 回到条件判断语句
重复... - 示例:
int i = 0;
while (i < 5) {
System.out.println(i);
i++; // 手动控制循环变量,否则死循环
}
// 输出 0~4 ,逻辑与 for 循环示例等价
3. do...while 循环
与 while
类似,但 至少执行一次循环体(先执行、后判断)。
// 初始化语句
do {
循环体语句;
条件控制语句;
} while (条件判断语句);
- 语法解释:
- 先执行
循环体语句
+条件控制语句
,再判断条件判断语句
。 - 若
条件判断语句
为true
,继续循环;为false
,则退出。
- 先执行
- 执行流程(对应流程图):
初始化语句
→ 执行循环体语句
+条件控制语句
→ 判条件判断语句
(false
则退出,true
则回到循环体)... - 示例:
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 5);
// 输出 0~4 ,与 for、while 效果一致;即使条件一开始不满足,也会执行一次循环体
三、总结
实际编码中,根据需求选对应结构即可。比如:固定次数遍历用 for
,动态条件判断用 while
,多值匹配用 switch
等,核心是清晰表达 “条件 → 执行逻辑” 的流程 。