授课语音

Java 循环控制

Java 提供了多种循环控制结构,包括 for 循环、while 循环和 do-while 循环,这些结构允许我们对代码块进行重复执行,直到满足指定的条件。此外,breakcontinue 语句可以进一步控制循环的流程。除此之外,我们还可以利用多层嵌套循环、死循环等方式实现特定的循环功能。本课将详细介绍这些循环控制结构及其应用,并通过代码示例帮助大家理解每种循环的用法及最佳实践。

1. 循环控制结构介绍

1.1 for 循环

for 循环结构允许我们通过初始化条件、循环条件和更新表达式控制循环的次数,适用于当循环的次数已知的情况。

语法:

for (初始化表达式; 循环条件; 更新表达式) {
    // 循环体
}

1.2 while 循环

while 循环是一种入口条件循环,即在每次循环开始之前先判断条件是否为真,适用于循环次数未知,且需要先判断条件的情况。

语法:

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

1.3 do-while 循环

do-while 循环是出口条件循环,它会先执行一次循环体,再判断条件是否为真,适用于需要至少执行一次循环的情况。

语法:

do {
    // 循环体
} while (循环条件);

1.4 死循环

死循环指的是循环条件始终为真,导致循环一直执行,直到程序被强制停止。常见的死循环使用 while(true) 语句来实现,例如在服务端程序中监听用户输入时使用死循环保持程序一直运行。

语法:

while (true) {
    // 死循环体,程序将持续运行
}

1.5 多层嵌套循环

多层嵌套循环是指在一个循环内嵌套另一个循环,用于处理多维数据结构或复杂的操作逻辑。常见的多层嵌套循环有二维和三维数组的遍历。

语法:

for (初始化表达式1; 条件1; 更新表达式1) {
    for (初始化表达式2; 条件2; 更新表达式2) {
        // 嵌套循环体
    }
}

1.6 breakcontinue 语句

  • break:用于立即跳出循环,终止当前循环。
  • continue:用于跳过本次循环中剩余的代码,立即进入下一次循环。

2. 循环控制代码示例

2.1 for 循环示例

以下示例通过 for 循环打印 1 到 5。

public class ForLoopExample {
    public static void main(String[] args) {
        // 初始化i为1,当i小于等于5时继续循环,每次循环后i自增1
        for (int i = 1; i <= 5; i++) {
            // 输出当前的i值
            System.out.println("当前数字: " + i);
        }
    }
}

2.2 while 循环示例

以下示例通过 while 循环计算从 1 加到 5 的和。

public class WhileLoopExample {
    public static void main(String[] args) {
        int i = 1; // 初始化变量i
        int sum = 0; // 初始化总和为0

        // 当i小于等于5时,执行循环体
        while (i <= 5) {
            sum += i; // 累加i的值到sum中
            i++; // i自增1
        }

        // 输出总和
        System.out.println("1 到 5 的和是: " + sum);
    }
}

2.3 死循环示例

以下示例展示一个简单的死循环,用于不断打印某一信息,直到手动停止程序。

public class InfiniteLoopExample {
    public static void main(String[] args) {
        // 死循环:无限循环,打印输出
        while (true) {
            System.out.println("死循环中...");
        }
    }
}

2.4 多层嵌套循环示例

以下示例展示如何通过多层嵌套循环来打印一个 3x3 的矩阵。

public class NestedLoopExample {
    public static void main(String[] args) {
        // 外层循环控制行数
        for (int i = 1; i <= 3; i++) {
            // 内层循环控制列数
            for (int j = 1; j <= 3; j++) {
                System.out.print("(" + i + ", " + j + ") ");
            }
            System.out.println(); // 换行
        }
    }
}

2.5 breakcontinue 示例

以下示例展示 breakcontinue 的用法。

public class BreakAndContinueExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                break; // 当i等于3时,跳出循环
            }
            System.out.println("循环中的数字: " + i);
        }

        System.out.println("----");

        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                continue; // 当i等于3时,跳过当前循环
            }
            System.out.println("循环中的数字: " + i);
        }
    }
}

3. 循环控制的最佳实践

  • 避免死循环:在编写循环时,确保设置合理的循环终止条件,避免无意中引入死循环。
  • 控制嵌套层次:尽量减少嵌套循环的层数,以提高代码的可读性和性能。嵌套层次过多的循环可能会导致程序运行效率低下。
  • 优先选择 for 循环:如果循环次数已知,优先选择 for 循环,这样更直观,代码逻辑清晰。
  • 合理使用 breakcontinue:在循环中使用 breakcontinue 可以优化流程,但要避免过多使用,以免影响代码的可读性和理解。
去1:1私密咨询

系列课程: