Skip to content

控制流

程序的执行顺序被称为控制流(Control Flow)。默认情况下,程序从上到下逐行执行,但我们经常需要改变这个顺序——比如重复执行某段代码,或者根据条件选择执行哪段代码。

if 语法

💡 概念说明

条件语句(if Statement) 用于根据条件决定是否执行某段代码。就像生活中的决策:"如果下雨,就带伞"。

基本语法:

java
if (条件) {
    // 条件为真时执行的代码
}

📝 代码示例

java
public class IfExample {
    public static void main(String[] args) {
        int age = 18;
        if (age >= 18) {
            System.out.println("你已成年");
        }
        System.out.println("程序结束");
    }
}

运行结果

你已成年
程序结束

如果把 age 改为 16,则只会输出:

程序结束

if-else 语法

当条件不满足时,执行另一段代码:

java
public class IfElseExample {
    public static void main(String[] args) {
        int score = 75;
        if (score >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
    }
}

else if 多条件判断

java
public class GradeExample {
    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 >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
    }
}

提示

条件判断从上到下进行,一旦某个条件满足就执行对应代码块,后面的条件不再检查。

💪 练习题

练习 1:判断一个数字是正数、负数还是零

点击查看答案
java
public class NumberCheck {
    public static void main(String[] args) {
        int number = -5;
        if (number > 0) {
            System.out.println("正数");
        } else if (number < 0) {
            System.out.println("负数");
        } else {
            System.out.println("零");
        }
    }
}

练习 2:判断一个数字是奇数还是偶数(提示:使用 % 运算符)

点击查看答案
java
public class OddEven {
    public static void main(String[] args) {
        int number = 7;
        if (number % 2 == 0) {
            System.out.println("偶数");
        } else {
            System.out.println("奇数");
        }
    }
}

for 循环

💡 概念说明

循环(Loop) 用于重复执行某段代码。for 循环适合已知重复次数的场景。

基本语法:

java
for (初始化; 条件; 更新) {
    // 循环体
}
  • 初始化:设置循环变量的初始值(只执行一次)
  • 条件:每次循环前检查,为真则继续,为假则结束
  • 更新:每次循环后执行

📝 代码示例

java
public class ForExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println("这是第 " + i + " 次循环");
        }
    }
}

运行结果

这是第 1 次循环
这是第 2 次循环
这是第 3 次循环
这是第 4 次循环
这是第 5 次循环

执行过程

  1. int i = 1:创建变量 i,初始值为 1
  2. 检查 i <= 5:1 <= 5 为真,执行循环体
  3. i++:i 变为 2
  4. 检查 i <= 5:2 <= 5 为真,继续循环
  5. 重复直到 i 为 6 时,6 <= 5 为假,循环结束

累加求和

java
public class SumExample {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            sum = sum + i;  // 累加
        }
        System.out.println("1 到 10 的和是: " + sum);
    }
}

运行结果

1 到 10 的和是: 55

💪 练习题

练习 1:打印 1 到 10 的所有偶数

点击查看答案
java
public class EvenNumbers {
    public static void main(String[] args) {
        for (int i = 2; i <= 10; i = i + 2) {
            System.out.println(i);
        }
    }
}

练习 2:计算 1 × 2 × 3 × 4 × 5 的结果

点击查看答案
java
public class Factorial {
    public static void main(String[] args) {
        int result = 1;
        for (int i = 1; i <= 5; i++) {
            result = result * i;
        }
        System.out.println("结果是: " + result);
    }
}

while 循环

💡 概念说明

while 循环适合不确定重复次数的场景,只要条件为真就一直执行。

基本语法:

java
while (条件) {
    // 循环体
}

📝 代码示例

java
public class WhileExample {
    public static void main(String[] args) {
        int count = 1;
        while (count <= 5) {
            System.out.println("count 的值是: " + count);
            count++;  // 每次加 1
        }
    }
}

运行结果

count 的值是: 1
count 的值是: 2
count 的值是: 3
count 的值是: 4
count 的值是: 5

注意

while 循环中必须有改变条件的语句(如 count++),否则会形成无限循环(Infinite Loop),程序无法停止。

实际应用场景

java
public class GuessNumber {
    public static void main(String[] args) {
        int target = 42;
        int guess = 10;
        while (guess != target) {
            System.out.println("猜测: " + guess);
            guess = guess + 10;  // 每次增加 10
        }
        System.out.println("猜对了!答案是: " + target);
    }
}

for 和 while 的区别

  • for 循环:知道要循环多少次时使用
  • while 循环:不确定循环次数,根据条件判断时使用

下面两段代码效果相同:

java
// 使用 for
for (int i = 0; i < 3; i++) {
    System.out.println(i);
}

// 使用 while
int i = 0;
while (i < 3) {
    System.out.println(i);
    i++;
}

💪 练习题

练习 1:使用 while 循环计算 2 的多少次方大于 1000

点击查看答案
java
public class PowerOfTwo {
    public static void main(String[] args) {
        int result = 1;
        int count = 0;
        while (result <= 1000) {
            result = result * 2;
            count++;
        }
        System.out.println("2 的 " + count + " 次方 = " + result);
    }
}

练习 2:倒计时程序(从 10 倒数到 1)

点击查看答案
java
public class Countdown {
    public static void main(String[] args) {
        int number = 10;
        while (number >= 1) {
            System.out.println(number);
            number--;
        }
        System.out.println("发射!");
    }
}

📌 小结

  • if 语句:根据条件决定是否执行代码,可以使用 else 和 else if 处理多种情况
  • for 循环:适合已知次数的重复操作,语法包含初始化、条件和更新三部分
  • while 循环:适合根据条件判断的重复操作,要注意避免无限循环