Java while循环

时间:2020-02-23 14:37:00  来源:igfitidea点击:

Java while循环用于连续执行语句块,直到给定条件成立为止。
之前我们研究了Java for循环。

Java while循环

Java语法中的while循环如下。

while (expression) {
  //statements
}

for表达式的while循环必须返回布尔值,否则将抛出编译时错误。

While循环Java流程图

Java while循环示例

这是一个简单的java while循环示例,可打印5到10之间的数字。

package com.theitroad.javawhileloop;

public class JavaWhileLoop {

	public static void main(String[] args) {

		int i = 5;
		while (i <= 10) {
			System.out.println(i);
			i++;
		}
	}
}

注意,我在while循环中增加i的值,否则while循环将永远不会终止,而我们将有一个无限循环。
终止以无限循环运行的程序的唯一方法是手动退出它,或者在JVM内存不足时退出。

另请注意,如果布尔表达式返回false,则while循环中的语句将不会执行。
因此,while循环内的语句将永远不会执行。

Java While循环与迭代器

Java while循环在Java中与迭代器一起使用很多。
让我们来看一个使用while循环迭代ArrayList的简短示例。

List<String> veggies = new ArrayList<>();
veggies.add("Spinach");
veggies.add("Potato");
veggies.add("Tomato");

Iterator<String> it = veggies.iterator();

while(it.hasNext()) {
	System.out.println(it.next());
}

它将打印如下输出。

Spinach
Potato
Tomato

而真正的java

有时我们有意地希望while循环无限运行。
在这种情况下,我们可以使用while true循环。
一个示例可能是连续在特定位置查找文件,如果找到该文件,则对其进行处理。
以下是Java中while真正循环的伪代码示例。

package com.theitroad.javawhileloop;

public class WhileTrueJava {

	public static void main(String[] args) {
		while(true) {
			System.out.println("Start Processing");
			//look for a file at specific directory
			//if found then process it, say insert rows into database
			System.out.println("End Processing");
			
			// wait for 10 seconds and look again
			try {
				Thread.sleep(10*1000);
			} catch (InterruptedException e) {
				System.out.println("Thread Interrupted, exit now");
				System.exit(0);
			}
		}
	}

}

如果运行上述程序,则必须在终端上使用Ctrl + C手动退出。
如果使用的是Eclipse,则有一个红色按钮可以终止当前正在运行的程序。

假设您在一个类中编写了一些代码,并且该代码正在进行中,因此您不想执行它。
我们可以将其包装在false循环中而根本不执行吗?

Java编译器非常聪明,足以给我们带来代码无法到达的编译错误。
下面是Eclipse编辑器的图像,以及当我们尝试从终端编译程序时的图像。

但是还有另一种方法可以实现,使用伪布尔变量,编译器错误将消失。

boolean mutex = false;
while(mutex) {
	System.out.println("incomplete code");
}