while循环几乎在所有编程语言中都有,Java 也不例外。Java 和其他语言中的While循环只要触发它的条件值为真,就会执行一条语句或语句块。在本文中,我们将讨论如何使用while循环。
循环有什么用?
你的第一个程序是一系列指令,一步一步地执行。没有分叉和重复。后来我们开始在条件运算符的帮助下使用分支。嗯,为了执行重复的动作,有循环。也许循环是流程自动化为新手程序员带来的最明显的好处之一。想象一下,您需要编写一个跟踪器程序来计算一天的步数。例如,当您通过 10,000 步时,程序会向您发送有关已实现目标的通知。发出通知的任务可以用这样的文字(或伪代码)来表达:
While (number of steps less than 10,000)
{
Count steps
}
Send notification "you have reached the goal"
也就是说,只要步数等于条件中指定的步数,程序就会退出此循环并发送通知。或者另一个例子。想象一下,您需要记住一首诗(或演讲)。一首诗如果你能不偷看地连续读三遍就可以算背熟了。如果你想象一个程序可以捕捉你背诵一首诗的尝试,它也必须使用一个循环:
While (success < 3)
learn a poem
所有现代教育应用程序都使用类似的结构,例如,学习语言或演奏乐器。
while循环及其结构
要解决上述示例的问题,更一般地说,要在 Java 中自动执行重复操作,您可以使用while循环。Java while循环在我们的例子中会很好地工作。这种设计将多个动作安排在一个简洁易懂的结构中。while循环语句在几乎所有的编程语言中都有。只要其控制表达式的值为真,它就会重复一条语句或语句块。while循环的形式如下:
while(condition == true) {
// statement or loop body
}
条件必须是一个布尔表达式,也就是说,可以说是真或假。以下是布尔表达式的一些示例:
s != "exit";
a > 5;
true;
只要条件表达式为真,就会执行循环体。当条件变为假时,控制权将转移到循环之后的代码行。如果循环中只使用一条语句,那么大括号可以省略(但最好不要这样做)。在while循环开始之前计算逻辑表达式,然后在每次重复执行语句之前计算一次。
While 循环示例
让我们编写一个程序,使用while循环对从 1 到 10 的所有数字求和:
public class WhileTest0 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
//while loop
while (i < 11) {
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
输出是:
55
我们需要计算从 1(或从 0,无所谓)到 10 的所有数字的总和。我们让初始总和和第一个元素都为零,并且每次通过都会将元素增加 1循环。我们将继续求和,直到参数等于 10(即小于 11。类似地,我们可以写条件i <= 10)。让我们再举一个 Java while循环的例子。我们将编写一个程序,让用户输入正整数。如果他们输入零或负数,程序应该报告并完成工作。
import java.util.Scanner;
public class WhileTest {
public static void main(String[] args) {
int positiveNumber = 1;
Scanner scanner = new Scanner(String.valueOf(positiveNumber));
while (positiveNumber > 0) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter positive number:");
positiveNumber = sc.nextInt();
System.out.println("ok, next");
}
System.out.println("The number should be positive");
}
}
您可以改进程序并向其添加内容,例如,检查用户是否输入了一个数字而不是其他字符,或者该数字是否为整数。
do-while 循环
如上例所示,经典的while循环会立即检查条件是否为真。因此,它可以称为有前提条件的循环。while循环有一个兄弟 do-while,一个带有后置条件的循环。也就是说,在条件真值测试发生之前,这样的循环至少会执行一次:
do {
// Loop body - periodically executed statement(s)
}while(Boolean expression);
因此,具有此类循环的第一个示例如下所示:
public class WhileTest0 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do
{
sum = sum + i;
i++;
} while (i < 11);
System.out.println(sum);
}
}
无限循环
while循环可用于组织while(true)形式的无限循环:例如,这是一个无休止地(有一些细微差别)打印一系列整数的程序 :
public class EndlessLoop {
public static void main(String[] args) {
int i = 0;
while (true) {
System.out.println(i++);
}
}
}
为了巩固您所学的知识,我们建议您观看我们的 Java 课程中的视频课程
GO TO FULL VERSION