Java 循环 4 分钟指南

无论您使用 while 循环、do while 循环还是无限循环,理解循环的工作原理对于 Java 编程至关重要。
目前还没有读者喜欢这个。
arrows cycle symbol for failing faster

Opensource.com

while 循环只要预定义的条件为真,就会执行一组任务。这被认为是一种控制结构,用于指导程序的流程。这是一种通过定义代码可以测试的条件,并根据其发现采取行动来告诉代码该怎么做的方法。Java 中的两种 while 循环是 while 和 do while。

Java while 循环

while 循环旨在迭代数据,直到满足某个条件。要创建 while 循环,您需要提供一个可以测试的条件,然后是要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(<>== 等)

package com.opensource.example;

public class Example {
  public static void main(String[] args) {

  int count = 0;
  while (count < 5) {
    System.out.printf("%d ", count);
    count++;
    }
  }
}

在这个简单的示例中,条件是变量 count 小于 5。因为 count 初始化为 0,然后在 while 循环内的代码中递增 1,所以程序总共迭代 5 次

$ java ./while.java
0 1 2 3 4

在它可以第六次迭代之前,条件不再为真,因此循环结束。

while 循环的条件语句至关重要。弄错它可能意味着您的循环永远不会执行。例如,假设您将 count == 5 设置为条件

  while (count == 5) {
    System.out.printf("%d ", count);
    count++;

当您运行代码时,它会成功构建和运行,但什么也不会发生

$ java ./while.java
$

循环已被跳过,因为 count 设置为 0,并且在第一次遇到 while 循环时它仍然是 0。循环永远没有理由开始,并且 count 永远不会递增。

与此相反的情况是,当条件开始为真并且永远不能为假时,这会导致无限循环。

Java do while 循环

与 while 循环类似,do while 循环在每次迭代的末尾而不是开头测试条件。这样,循环中的代码至少运行一次,因为没有入口网关,只有一个出口网关

package com.opensource.example;

public class Example {
  public static void main(String[] args) {

  int count = 9;
  do {
      System.out.printf("%d ", count);
      count++;
    } while(count == 5);
  }
}

在此示例代码中,count 设置为 9。循环重复的条件是 count 等于 5。但是 9 不等于 5。但是,该检查要到第一次迭代结束时才会执行

$ java ./do.java
9

Java 无限循环

顾名思义,无限循环永远不会结束。有时它们是错误地创建的,但无限循环确实有有效的用例。有时您希望进程无限期地继续(这在功能上是无限的,因为您无法保证何时需要它停止),因此您可以将条件设置为不可能满足的条件。

假设您编写了一个应用程序,用于计算僵尸末日期间您所在社区中剩余的僵尸数量。为了模拟不确定需要多少循环才能达到 0 个僵尸,我的演示代码从操作系统检索时间戳,并将计数器 (c) 的值设置为从该时间戳派生的某个数字。因为这是一个简单的示例,而且您确实不想陷入无限循环,所以此代码会倒数到零并使用 break 函数强制循环结束

package com.opensource.example;

public class Example {
  public static void main(String[] args) {

  long myTime = System.currentTimeMillis();

  int c;

  if ( myTime%2 == 0 ) {
      c = 128;
  } else {
      c = 1024;
  }

  while(true) {
    System.out.printf("%d Zombies\n", c);

    // break for convenience
    if ( c <= 0 ) { break; }
    c--;
    }
  }
}

您可能需要运行几次才能触发不同的僵尸总数,但有时您的程序迭代 128 次,有时迭代 1,024 次

$ java ./zcount.java
1024 Zombies
1023 Zombies
[...]
0 Zombies

您能说出为什么循环在 0 而不是 -1 处结束吗?

Java 循环

循环使您可以控制程序执行的流程。迭代在编程中很常见,无论您使用 while 循环、do while 循环还是无限循环,理解循环的工作原理都至关重要。

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,通常同时从事这两个行业。

评论已关闭。

Creative Commons License本作品根据 Creative Commons 许可协议 授权,但可能并非在所有情况下都能做到。您有责任确保您拥有重新使用本网站上任何作品的必要许可。Red Hat 和 Red Hat 徽标是 Red Hat, Inc. 在美国和其他国家/地区的注册商标。
© . All rights reserved.