Java控制流:条件语句与循环
Java控制流:条件语句与循环
概述
控制流语句用于控制程序的执行流程。Java提供了条件语句和循环语句来实现不同的控制流需求。
1. 条件语句
if-else语句
public class IfElseExample {
public static void main(String[] args) {
int score = 85;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 70) {
System.out.println("中等");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
}
}
嵌套if-else
public class NestedIfExample {
public static void main(String[] args) {
int age = 25;
boolean hasID = true;
if (age >= 18) {
if (hasID) {
System.out.println("允许进入");
} else {
System.out.println("请出示身份证");
}
} else {
System.out.println("未成年人不允许进入");
}
}
}
switch语句
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("无效的日期");
break;
}
}
}
switch表达式(Java 14+)
public class SwitchExpressionExample {
public static void main(String[] args) {
int day = 3;
String dayName = switch (day) {
case 1 -> "星期一";
case 2 -> "星期二";
case 3 -> "星期三";
case 4 -> "星期四";
case 5 -> "星期五";
case 6 -> "星期六";
case 7 -> "星期日";
default -> "无效的日期";
};
System.out.println(dayName);
}
}
2. 循环语句
for循环
public class ForLoopExample {
public static void main(String[] args) {
// 基本for循环
for (int i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
// 嵌套for循环
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
System.out.print(i * j + "\t");
}
System.out.println();
}
}
}
while循环
public class WhileLoopExample {
public static void main(String[] args) {
int count = 0;
while (count < 5) {
System.out.println("count = " + count);
count++;
}
}
}
do-while循环
public class DoWhileExample {
public static void main(String[] args) {
int count = 0;
do {
System.out.println("count = " + count);
count++;
} while (count < 5);
}
}
增强for循环(for-each)
public class ForEachExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
// 增强for循环
for (int number : numbers) {
System.out.println("number = " + number);
}
// 等价的普通for循环
for (int i = 0; i < numbers.length; i++) {
System.out.println("numbers[" + i + "] = " + numbers[i]);
}
}
}
3. 循环控制语句
break语句
public class BreakExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当i等于5时跳出循环
}
System.out.println("i = " + i);
}
// 输出:0 1 2 3 4
}
}
continue语句
public class ContinueExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数
}
System.out.println("i = " + i);
}
// 输出:1 3 5 7 9
}
}
带标签的break和continue
public class LabeledLoopExample {
public static void main(String[] args) {
// 带标签的break
outer:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (j == 3) {
break outer; // 跳出外层循环
}
System.out.println("i = " + i + ", j = " + j);
}
}
System.out.println("---");
// 带标签的continue
outer:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (j == 3) {
continue outer; // 继续外层循环
}
System.out.println("i = " + i + ", j = " + j);
}
}
}
}
4. 实际应用示例
计算阶乘
public class FactorialExample {
public static void main(String[] args) {
int n = 5;
long factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
System.out.println(n + "的阶乘 = " + factorial);
}
}
判断素数
public class PrimeNumberExample {
public static void main(String[] args) {
int number = 17;
boolean isPrime = true;
if (number <= 1) {
isPrime = false;
} else {
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
isPrime = false;
break;
}
}
}
if (isPrime) {
System.out.println(number + "是素数");
} else {
System.out.println(number + "不是素数");
}
}
}
打印九九乘法表
public class MultiplicationTableExample {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + " × " + i + " = " + (i * j) + "\t");
}
System.out.println();
}
}
}
最佳实践
- 避免无限循环:确保循环条件最终会变为false
- 使用合适的循环类型:根据需求选择for、while或do-while
- 避免过多嵌套:嵌套循环会降低代码可读性
- 使用break和continue:合理使用可以简化循环逻辑
总结
控制流语句是Java编程的基础,掌握条件语句和循环语句对于编写复杂的程序逻辑至关重要。在实际编程中,要根据具体需求选择合适的控制流语句,并注意代码的可读性和效率。