杰瑞科技汇

Java循环for与if如何协同工作?

循环结构

循环结构允许我们重复执行一段代码,直到满足某个特定的条件为止,这样可以避免编写大量重复的代码,提高效率。

Java循环for与if如何协同工作?-图1
(图片来源网络,侵删)

Java 中主要有三种循环:for 循环、while 循环和 do-while 循环。

for 循环

for 循环通常用于当你事先知道循环需要执行多少次时使用,它的结构非常清晰,包含三个部分。

语法格式:

for (初始化表达式; 循环条件; 更新表达式) {
    // 循环体:要重复执行的代码
}

三个部分的含义:

Java循环for与if如何协同工作?-图2
(图片来源网络,侵删)
  1. 初始化表达式:在循环开始时,只执行一次,通常用于初始化一个循环变量(如 int i = 0;)。
  2. 循环条件:在每次循环开始前都会被检查,如果条件为 true,则执行循环体;如果为 false,则循环结束。
  3. 更新表达式:在每次循环体执行完毕后,执行一次,通常用于更新循环变量(如 i++)。

示例:打印 1 到 5 的数字

public class ForLoopExample {
    public static void main(String[] args) {
        System.out.println("使用 for 循环打印 1 到 5:");
        // 初始化 i=0; 条件 i < 5; 每次循环后 i++
        for (int i = 0; i < 5; i++) {
            // 循环体
            System.out.println("当前数字是: " + (i + 1));
        }
    }
}

执行流程:

  1. int i = 0;i 被初始化为 0。
  2. i < 5;:检查 i 是否小于 5。0 < 5true,进入循环体。
  3. 打印 "当前数字是: 1"。
  4. i++i 的值变为 1。
  5. 再次检查 i < 5;1 < 5true,进入循环体。
  6. 打印 "当前数字是: 2"。
  7. i++i 的值变为 2。
  8. ... 重复此过程,直到 i 变为 5。
  9. i 为 5 时,i < 5false,循环结束。

while 循环

while 循环在不确定循环次数,但有一个明确的循环继续条件时非常有用,它会先检查条件,如果条件为 true,才执行循环体。

语法格式:

Java循环for与if如何协同工作?-图3
(图片来源网络,侵删)
while (循环条件) {
    // 循环体:要重复执行的代码
}

注意: while 的初始条件就是 false,那么循环体一次都不会执行。

示例:猜数字游戏(简化版)

public class WhileLoopExample {
    public static void main(String[] args) {
        int targetNumber = 10;
        int guess = 0;
        System.out.println("猜一个 1 到 20 之间的数字:");
        // 只要 guess 不等于 targetNumber,就一直循环
        while (guess != targetNumber) {
            // 假设我们猜的数字是 5
            guess = 5; 
            System.out.println("我猜的是: " + guess);
        }
        System.out.println("猜对了!");
    }
}

执行流程:

  1. guess 初始为 0,targetNumber 为 10。
  2. while (0 != 10):条件为 true,进入循环。
  3. guess 被赋值为 5。
  4. 打印 "我猜的是: 5"。
  5. 再次检查 while (5 != 10):条件为 true,再次进入循环。
  6. guess 再次被赋值为 5。
  7. ... 这里会陷入无限循环,因为没有改变 guess 的值来使其等于 targetNumber,这说明了 while 循环中更新条件变量的重要性。

do-while 循环

do-while 循环和 while 循环非常相似,唯一的区别是:do-while 循环至少会执行一次循环体,因为它是在执行完循环体之后才检查条件的。

语法格式:

do {
    // 循环体:至少执行一次
} while (循环条件);

示例:要求用户输入密码,至少输入一次

public class DoWhileExample {
    public static void main(String[] args) {
        String correctPassword = "123456";
        String userInput;
        do {
            // 无论条件如何,这里的代码都会至少执行一次
            System.out.println("请输入您的密码: ");
            // 假设这里我们从控制台获取了输入
            userInput = "wrong"; // 模拟第一次输入错误
            System.out.println("您输入的是: " + userInput);
        } while (!userInput.equals(correctPassword)); // 只有当输入正确时才停止
        System.out.println("密码正确,欢迎登录!");
    }
}

执行流程:

  1. 直接进入 do 块,执行里面的代码。
  2. 打印提示信息,userInput 被赋值为 "wrong"。
  3. 执行到 while (!userInput.equals(correctPassword));
  4. 检查条件:"wrong".equals("123456")false!falsetrue
  5. 因为条件为 true,所以循环继续。
  6. 再次进入 do 块...
  7. 直到 userInput 的值变为 "123456",while 条件才会为 false,循环结束。

条件判断结构 if

if 语句用于根据一个条件的真假来决定是否执行某段代码,它是程序做出决策的基础。

if 语句

最基本的 if 语句,当条件为 true 时执行代码块。

语法格式:

if (条件表达式) {
    // 如果条件为 true,则执行这里的代码
}

示例:判断年龄是否成年

int age = 20;
if (age >= 18) {
    System.out.println("您已成年。");
}

if-else 语句

当条件为 true 时执行一个代码块,为 false 时执行另一个代码块。

语法格式:

if (条件表达式) {
    // 如果条件为 true,则执行这里的代码
} else {
    // 如果条件为 false,则执行这里的代码
}

示例:判断成绩是否及格

int score = 58;
if (score >= 60) {
    System.out.println("恭喜,您及格了!");
} else {
    System.out.println("很遗憾,您未及格。");
}

if-else if-else 语句(多分支判断)

当有多个条件需要依次判断时使用,它会从上到下检查条件,一旦某个条件为 true,就执行对应的代码块,并跳过后续的 else ifelse

语法格式:

if (条件1) {
    // 如果条件1为 true,执行这里
} else if (条件2) {
    // 如果条件1为 false 且条件2为 true,执行这里
} else if (条件3) {
    // 如果条件1和条件2都为 false 且条件3为 true,执行这里
} else {
    // 如果以上所有条件都为 false,执行这里
}

示例:根据分数评定等级

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("成绩不及格");
}

for 循环与 if 语句的结合使用

这是编程中最常见的组合之一,我们在一个循环中遍历一系列数据,然后使用 if 语句对每个数据进行判断和处理。

核心思想:

  • for 循环:负责“遍历”(重复访问)。
  • if 语句:负责“筛选”(判断是否满足某个条件)。

示例1:找出一个数组中的所有偶数

public class ForIfExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        System.out.println("数组中的偶数有:");
        // 1. 使用 for 循环遍历数组中的每一个数字
        for (int i = 0; i < numbers.length; i++) {
            int currentNumber = numbers[i];
            // 2. 使用 if 语句判断当前数字是否是偶数
            // 判断偶数的条件:能被 2 整除,即除以 2 的余数为 0
            if (currentNumber % 2 == 0) {
                // 3. 如果是偶数,就打印出来
                System.out.println(currentNumber);
            }
            // 如果不是偶数,if 条件不成立,什么也不做,继续下一次循环
        }
    }
}

示例2:统计一个数组中偶数的个数

public class ForIfCountExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        // 1. 初始化一个计数器
        int evenCount = 0;
        // 2. 使用 for 循环遍历数组
        for (int i = 0; i < numbers.length; i++) {
            int currentNumber = numbers[i];
            // 3. 使用 if 语句判断是否为偶数
            if (currentNumber % 2 == 0) {
                // 4. 如果是偶数,计数器加 1
                evenCount++;
            }
        }
        // 5. 循环结束后,打印最终结果
        System.out.println("数组中共有 " + evenCount + " 个偶数。");
    }
}
结构 关键字 用途 特点
循环结构 for 已知循环次数时使用 结构清晰,初始化、条件、更新三部分在一行
while 未知循环次数,但有明确继续条件时使用 先判断,后执行,可能一次都不执行
do-while 未知循环次数,但需要至少执行一次时使用 先执行,后判断,至少执行一次
条件判断 if 单条件判断 条件为 true 时执行
if-else 二选一判断 根据条件是 true 还是 false 执行不同分支
if-else if-else 多选一判断 从上到下判断,执行第一个为 true 的分支

掌握 for 循环和 if 语句是学习 Java 编程的基石,通过它们的组合,你可以处理大量重复性的任务并根据不同的情况做出不同的反应,从而编写出功能强大的程序。

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