杰瑞科技汇

Java for循环中if else的使用场景与优化技巧?

核心概念

我们要明白 for 循环和 if-else 各自的作用:

Java for循环中if else的使用场景与优化技巧?-图1
(图片来源网络,侵删)
  1. for 循环:用于重复执行一段代码,它通常在你事先知道循环次数(或循环结束条件)时使用,它会遍历一个序列(比如数组、集合)或者执行一个固定次数的操作。
  2. if-else 语句:用于条件判断,它根据一个条件的真假(truefalse)来决定执行哪一段代码,它只做一次判断,然后执行一个分支。

当它们组合在一起时,核心思想是:在循环的每一次迭代中,都加入一个条件判断。

“对于列表中的每一项,都检查一下它是否满足某个条件,如果满足就做 A,否则就做 B。”


基本语法结构

if-else 语句可以放在 for 循环的任何位置,但最常见的是放在循环体的内部

for (初始化; 循环条件; 更新) {
    // 循环体开始
    // 在这里放置 if-else 语句
    if (条件表达式) {
        // 如果条件为 true,执行这里的代码
    } else {
        // 如果条件为 false,执行这里的代码
    }
    // 循环体结束
}

执行流程:

Java for循环中if else的使用场景与优化技巧?-图2
(图片来源网络,侵删)
  1. 执行 for 循环的初始化部分(int i = 0;)。
  2. 检查循环条件是否为 truei < 5;)。
    • 如果为 false,循环结束,跳转到 for 循环后面的代码。
    • 如果为 true,则进入循环体。
  3. 在循环体内部,执行 if-else 语句:
    • 判断 if条件表达式
    • 根据 truefalse 执行对应的代码块。
  4. 执行完 if-else 后,执行 for 循环的更新部分(i++)。
  5. 回到第 2 步,继续下一次循环。

代码示例

下面通过几个经典的例子来理解这个组合的强大之处。

示例 1:找出数组中的偶数和奇数

这是最经典的例子之一,我们遍历一个数字数组,对每个数字进行判断。

public class ForIfElseExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        System.out.println("遍历数组并判断奇偶数:");
        // for 循环遍历数组
        for (int i = 0; i < numbers.length; i++) {
            int currentNumber = numbers[i];
            // if-else 判断当前数字是偶数还是奇数
            if (currentNumber % 2 == 0) {
                // 如果条件为 true (能被 2 整除),则执行此代码块
                System.out.println(currentNumber + " 是偶数");
            } else {
                // 如果条件为 false,则执行此代码块
                System.out.println(currentNumber + " 是奇数");
            }
        }
    }
}

输出结果:

遍历数组并判断奇偶数:
1 是奇数
2 是偶数
3 是奇数
4 是偶数
5 是奇数
6 是偶数
7 是奇数
8 是偶数
9 是奇数
10 是偶数

代码解析: for 循环会依次取出 numbers 数组中的 1, 2, 3, ...,对于取出的每一个数字,if-else 语句都会判断一次它的奇偶性,然后打印出相应的结果。

Java for循环中if else的使用场景与优化技巧?-图3
(图片来源网络,侵删)

示例 2:筛选出满足特定条件的元素

假设我们有一个学生分数列表,我们想找出所有及格(分数 >= 60)的学生。

public class PassOrFailExample {
    public static void main(String[] args) {
        int[] scores = {85, 45, 92, 58, 71, 60, 39};
        System.out.println("找出所有及格的学生:");
        for (int i = 0; i < scores.length; i++) {
            int score = scores[i];
            // if-else 判断分数是否及格
            if (score >= 60) {
                System.out.println("学生 " + (i + 1) + " 及格,分数: " + score);
            } else {
                // 这里我们不做任何事,或者可以打印不及格的信息
                // System.out.println("学生 " + (i + 1) + " 不及格,分数: " + score);
            }
        }
    }
}

输出结果:

找出所有及格的学生:
学生 1 及格,分数: 85
学生 3 及格,分数: 92
学生 5 及格,分数: 71
学生 6 及格,分数: 60

代码解析: 在这个例子中,else 分支是空的,这是完全合法的,我们只关心“及格”的情况,对于“不及格”的情况我们不需要执行任何操作,这展示了 if-else 组合的灵活性。


示例 3:在循环中使用 if-else if-else 进行多重判断

当一个条件有多个可能的结果时,我们可以使用 if-else if-else 链。

public class GradingExample {
    public static void main(String[] args) {
        int score = 78;
        // for 循环模拟多次考试
        for (int exam = 1; exam <= 3; exam++) {
            System.out.print("第 " + exam + " 次考试的成绩是 " + score + ",评级为: ");
            // if-else if-else 判断成绩等级
            if (score >= 90) {
                System.out.println("A (优秀)");
            } else if (score >= 80) { // 注意:这里的条件是 score >= 80 且 score < 90
                System.out.println("B (良好)");
            } else if (score >= 60) { // 这里的条件是 score >= 60 且 score < 80
                System.out.println("C (及格)");
            } else { // 所有其他情况 (score < 60)
                System.out.println("D (不及格)");
            }
            // 模拟分数变化
            score -= 10; 
        }
    }
}

输出结果:

第 1 次考试的成绩是 78,评级为: C (及格)
第 2 次考试的成绩是 68,评级为: C (及格)
第 3 次考试的成绩是 58,评级为: D (不及格)

代码解析: for 循环执行了 3 次,在每一次循环中,if-else if-else 结构会从上到下检查条件,一旦找到一个为 true 的条件,就执行对应的代码块,然后跳过剩下的 else ifelse,进入下一次循环。


最佳实践和注意事项

  1. 代码缩进:为了代码的可读性,请务必对 for 循环和 if-else 内部的代码进行正确的缩进,这能清晰地展示代码的层级结构。
  2. 避免“深嵌套”:尽量避免将 for 循环套在 if 里面,或者 if 套在 for 里面套得太深,如果逻辑过于复杂,可以考虑将内层逻辑提取成一个独立的方法,使代码更清晰。
  3. 作用域for 循环中声明的变量(如 int i)只在循环内部有效。
  4. else 的可选性else 块是可选的,如果你只关心条件为 true 的情况,可以只写 if

for 循环和 if-else 的组合是编程的基石,它让你能够:

  • 批量处理:遍历一个集合(如数组、列表)。
  • 智能筛选:在遍历的过程中,根据特定条件对元素进行分类、筛选或执行不同的操作。

掌握这个组合是迈向更复杂编程逻辑(如嵌套循环、处理复杂数据结构等)的关键一步,多写多练,很快你就能熟练运用它了。

分享:
扫描分享到社交APP
上一篇
下一篇