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 循环还是无限循环,理解循环的工作原理都至关重要。
评论已关闭。