杰瑞科技汇

while和if在Java中到底该咋选?

  • if:用于条件判断,决定代码块是否执行一次,它是一个“分支”语句。
  • while:用于循环控制,只要条件为真,就重复执行代码块,它是一个“循环”语句。

下面我们从多个维度来详细对比它们。

while和if在Java中到底该咋选?-图1
(图片来源网络,侵删)

核心区别:执行次数

这是两者最根本、最直观的区别。

特性 if 语句 while 语句
核心作用 条件判断,根据条件选择执行路径 循环控制,根据条件重复执行代码
执行次数 最多执行一次(条件为真)或零次(条件为假) 可能执行零次或多次,直到条件变为假为止
比喻 一个十字路口,你根据路标选择向左走还是向右走,走完就结束了。 一个跑步机,只要你没达到设定的目标(比如跑30分钟),你就必须一直跑下去。

语法结构对比

if 语句

if 语句用于判断一个条件,如果条件为 true,则执行其后的一块代码,它有多种形式:

  1. 基本 if

    if (条件表达式) {
        // 当条件表达式为 true 时,这里的代码块被执行
        // 执行一次后,程序跳出 if 结构,继续执行后面的代码
    }
  2. if-else

    while和if在Java中到底该咋选?-图2
    (图片来源网络,侵删)
    if (条件表达式) {
        // 当条件表达式为 true 时,执行这里的代码块
    } else {
        // 当条件表达式为 false 时,执行这里的代码块
    }
    // 两个代码块中,只有一个会被执行
  3. if-else if-else

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

while 语句

while 语句用于创建一个循环,只要其条件表达式为 true,循环体内的代码就会被反复执行。

  1. 基本 while 循环

    while (条件表达式) {
        // 当条件表达式为 true 时,反复执行这里的代码块
        // 在代码块执行完毕后,会**再次判断**条件表达式
        // 如果条件依然为 true,则再次执行代码块,直到条件变为 false
    }
  2. do-while 循环 (是 while 的一种变体)

    while和if在Java中到底该咋选?-图3
    (图片来源网络,侵删)
    do {
        // 这里的代码块**至少会执行一次**
        // 然后在循环的末尾判断条件表达式
    } while (条件表达式);

代码示例对比

让我们通过一个具体的例子来感受它们的区别。

示例1:if 的用法

假设我们要判断一个年龄是否成年,如果成年就打印一条消息。

int age = 20;
if (age >= 18) {
    System.out.println("你已经成年了。"); // 这行只会被执行一次
}
System.out.println("if 语句结束。"); // 这行代码一定会被执行

输出:

你已经成年了。
if 语句结束。

即使你把 age 改成 25,输出的第一行也只会出现一次。if 没有重复执行的能力。

示例2:while 的用法

现在我们想用 while 循环来打印从 1 到 5 的数字。

int count = 1;
while (count <= 5) {
    System.out.println("当前数字是: " + count);
    count++; // !!! 关键:更新循环条件,否则会变成死循环
}
System.out.println("while 循环结束。");

输出:

当前数字是: 1
当前数字是: 2
当前数字是: 3
当前数字是: 4
当前数字是: 5
while 循环结束。

可以看到,while 循环体内的代码被执行了5次,直到 count 的值变为6,count <= 5 这个条件不再满足,循环才结束。


总结表格

特性 if 语句 while 语句
目的 分支:根据条件选择执行不同的代码路径。 循环:根据条件重复执行一段代码。
执行次数 0 次或 1 次。 0 次或 N 次(N ≥ 1)。
逻辑流程 检查一次条件,然后决定下一步去哪里。 检查条件,为真则执行代码,然后返回再次检查条件,形成一个“环”。
关键点 条件判断的结果 循环的终止条件,必须在循环体内修改影响条件的变量,否则可能导致无限循环
典型场景 - 用户输入是否合法
- 是否满足某个特定条件才执行操作
- 多路分支选择(如菜单系统)
- 遍历数组或集合
- 读取文件直到末尾
- 游戏主循环
- 任何需要重复执行直到某个目标达成的场景

一个重要的警告:if 中的 和

对于初学者来说,一个常见的错误是在 if 语句中误用赋值运算符 而不是等于运算符 。

// 错误示范!
int x = 10;
if (x = 5) { // 编译错误!在Java中,if的括号内必须是boolean类型
    System.out.println("x 等于 5");
}

在 Java 中,if 后面的括号里必须是一个布尔表达式(结果为 truefalse)。x = 5 是一个赋值语句,它返回的是赋的值 5(一个整数),而不是 truefalse,所以会编译错误。

正确的写法是:

int x = 10;
if (x == 5) { // 使用 == 进行比较
    System.out.println("x 等于 5");
}

while 循环也遵循同样的规则,括号内必须是布尔表达式。

记住这个核心区别:if 是做选择题,答案是“做”或“不做”;while 是做跑步机,目标是“停”,只要没停,就一直跑。 理解了这一点,你就能在正确的场景下使用它们了。

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