控制流语句是用来 控制程序执行顺序 的关键工具,它们允许你根据不同的条件执行不同的代码块,或者重复执行某段代码。这使得程序能够根据输入和情况做出智能的决策,而不仅仅是线性的执行。
1. 条件语句 (Conditional Statements)
条件语句允许你根据 布尔表达式(true 或 false) 的结果来决定执行哪部分代码。
1.1 if
语句
最基本的条件语句,用于在条件为真时执行一段代码。
语法:
if (condition) {// 当 condition 为 true 时执行的代码块
}
示例:
int score = 85;
if (score >= 60) {System.out.println("恭喜,你及格了!");
}
1.2 if-else
语句
当
if
的条件为假时,你可以提供一个else
块来执行另一段代码。
语法:
if (condition) {// 当 condition 为 true 时执行的代码块
} else {// 当 condition 为 false 时执行的代码块
}
示例:
int temperature = 25;
if (temperature > 30) {System.out.println("天气很热,注意防暑!");
} else {System.out.println("天气舒适。");
}
1.3 if-else if-else
语句
用于处理多个条件判断,按顺序检查条件,一旦某个条件为真,就执行对应的代码块,然后跳出整个
if-else if-else
结构。
语法:
if (condition1) {// 当 condition1 为 true 时执行
} else if (condition2) {// 当 condition1 为 false,且 condition2 为 true 时执行
} else if (condition3) {// 当 condition1, condition2 都为 false,且 condition3 为 true 时执行
} else {// 当以上所有条件都为 false 时执行
}
示例:
int mark = 75;
if (mark >= 90) {System.out.println("优秀");
} else if (mark >= 80) {System.out.println("良好");
} else if (mark >= 60) {System.out.println("及格");
} else {System.out.println("不及格");
}
1.4 switch
语句
switch
语句提供了一种更简洁的方式来根据一个 变量(通常是整型、字符型或枚举类型) 的值执行不同的代码块。
语法:
switch (expression) {case value1:// 当 expression 等于 value1 时执行的代码break; // 退出 switch 语句case value2:// 当 expression 等于 value2 时执行的代码break;// ... 更多 casedefault: // 可选// 当 expression 不匹配任何 case 时执行的代码
}
重要说明:
break
语句非常重要!它用于 终止switch
语句的执行。如果没有break
,程序会 “穿透” (fall-through) 到下一个case
继续执行,这通常不是我们想要的。default
块是可选的,用于处理所有case
都不匹配的情况。
示例:
char grade = 'B';
switch (grade) {case 'A':System.out.println("优秀!");break;case 'B':System.out.println("良好!");break;case 'C':System.out.println("及格!");break;default:System.out.println("需要努力!");
}
2. 循环语句 (Looping Statements)
循环语句允许你 重复执行一段代码,直到满足某个条件为止。
2.1 for
循环
for
循环通常用于 已知循环次数 的情况。它包含三个部分:初始化、条件和迭代。
语法:
for (initialization; condition; iteration) {// 循环体:当 condition 为 true 时重复执行的代码
}
示例:
// 打印 1 到 5
for (int i = 1; i <= 5; i++) {System.out.println("当前数字: " + i);
}
增强 for 循环 (For-Each Loop): 用于遍历数组或集合中的元素,更加简洁。
语法:
for (dataType element : arrayOrCollection) {// 对 element 进行操作
}
示例:
int[] numbers = {10, 20, 30, 40, 50};
for (int num : numbers) {System.out.println(num);
}
2.2 while
循环
while
循环在 循环条件为真时 不断地重复执行代码块。它只包含一个条件。
语法:
while (condition) {// 当 condition 为 true 时重复执行的代码块// 必须有逻辑来最终使 condition 变为 false,否则会造成死循环
}
示例:
int count = 0;
while (count < 3) {System.out.println("循环次数: " + count);count++; // 必须有这行,否则是死循环
}
2.3 do-while
循环
do-while
循环与while
循环类似,但 至少会执行一次循环体,然后再根据条件判断是否继续循环。
语法:
do {// 循环体:至少执行一次// 必须有逻辑来最终使 condition 变为 false
} while (condition); // 注意这里的分号
示例:
int num = 5;
do {System.out.println("执行 do-while 循环,num = " + num);num--;
} while (num > 0);
3. 跳转语句 (Jump Statements)
跳转语句用于 改变程序的正常执行流程。
3.1 break
语句
在 循环语句 中:用于 立即终止整个循环,程序将跳到循环体外的下一条语句。
在
switch
语句 中:用于 立即终止switch
语句。
示例(在循环中):
for (int i = 0; i < 10; i++) {if (i == 5) {break; // 当 i 等于 5 时,跳出 for 循环}System.out.println(i);
}
// 输出: 0, 1, 2, 3, 4
3.2 continue
语句
continue
语句用于 跳过当前迭代的剩余部分,直接进入下一次迭代(执行循环的更新部分,并重新检查条件)。
示例:
for (int i = 0; i < 10; i++) {if (i % 2 == 0) { // 如果 i 是偶数continue; // 跳过这次循环的剩余部分,直接进行下一次迭代}System.out.println(i); // 只会打印奇数
}
// 输出: 1, 3, 5, 7, 9
3.3 return
语句
return
语句用于 退出当前的方法,并将一个值(如果方法有返回值)返回给调用者。我们后面学习方法时会详细讲。
4. 总结:控制流语句
你已经成功掌握了 Java 中的控制流语句,这为编写更复杂、更智能的程序奠定了坚实的基础。简单来说,控制流语句就像是程序的“大脑”,它们决定了代码执行的顺序、是否重复执行以及在何种条件下执行。
我们回顾一下今天学习的关键内容:
1. 条件语句 (Conditional Statements):
if
: 在条件为真时执行代码块。if-else
: 根据条件真假选择执行不同的代码块。if-else if-else
: 处理多个互斥的条件判断。switch
: 根据一个变量的值,简洁地选择执行多个代码块之一。
2. 循环语句 (Looping Statements):
for
: 适用于已知循环次数的场景,包含初始化、条件和迭代。增强
for
(For-Each Loop): 简化了遍历数组或集合的操作。while
: 在条件为真时持续循环。do-while
: 至少执行一次循环体,然后根据条件判断是否继续。
3. 跳转语句 (Jump Statements):
break
: 立即终止循环或switch
语句。continue
: 跳过当前循环迭代的剩余部分,进入下一次迭代。return
: 退出当前方法(我们将在后续学习方法时深入探讨)。
掌握了这些控制流语句,你就能让你的 Java 程序具备“思考”和“决策”的能力,能够根据不同的情况做出不同的反应,编写出更具动态性和灵活性的代码。