Java while 循环
在计算机编程中,循环用于重复运行代码块。在本教程中,我们将通过示例介绍如何在 Java 中使用 while 和 do while 循环。
在本教程中,我们将通过示例介绍如何在 Java 中使用 while 和 do while 循环。
在计算机编程中,循环用于重复运行代码块。例如,如果您想将消息显示 100 次,则可以使用循环。这只是一个简单的例子;您可以使用循环实现更多功能。
在前面的教程中,我们介绍了 Java for 循环和 Java for each 循环。在这里,我们要了解 while
和 do...while
循环,同样可是实现重复运行代码。
Java while 循环
Java while
循环只要满足指定的条件,就会运行循环体。
while 循环语法
while (testExpression) {
// body of loop
}
说明:
- 计算测试条件
textExpression
。 - 如果
textExpression
的计算结果为true
,则执行while
循环体内的代码。 - 再次计算测试条件
textExpression
。 - 如果
textExpression
的计算结果为true
,则执行while
循环体内的代码。 - 这个过程一直持续到
textExpression
为false
,循环停止。
要了解循环的测试条件,需要首先了解关系运算符和逻辑运算符的知识。
while 循环流程图
Java while 循环流程图
示例 1:显示从 1 到 5 的数字
public class Main {
public static void main(String[] args) {
// 声明变量
int i = 1, n = 5;
// 从 1 到 5
while(i <= n) {
System.out.println(i);
i++;
}
}
}
输出:
1
2
3
4
5
以下是程序的循环迭代原理:
迭代 | 变量 | 条件:i <= n |
执行 |
---|---|---|---|
1 | i = 1 n = 5 |
true |
打印 1;i 增加到 2 。 |
2 | i = 2 n = 5 |
true |
打印 2;i 增加到 3 。 |
3 | i = 3 n = 5 |
true |
打印 3;i 增加到 4 。 |
4 | i = 4 n = 5 |
true |
打印 4;i 增加到 5 。 |
5 | i = 5 n = 5 |
true |
打印 5;i 增加到 6 。 |
6 | i = 6 n = 5 |
false |
循环终止 |
示例 2:仅正数之和
// Java program to find the sum of positive numbers
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int sum = 0;
// 创建 Scanner 对象获取用户输入
Scanner input = new Scanner(System.in);
// 获取用户输入的数字
System.out.print("输入一个数字:");
int number = input.nextInt();
// 循环提示用户输入数字,直到用户输入了负数退出循环
while (number >= 0) {
sum += number;
System.out.print("输入一个数字:");
number = input.nextInt();
}
System.out.println("Sum = " + sum);
input.close();
}
}
输出:
输入一个数字:1
输入一个数字:2
输入一个数字:3
输入一个数字:4
输入一个数字:-1
Sum = 10
在上面的程序中,我们使用了 Scanner 类来获取用户的输入。在这里, nextInt()
从用户那里获取整数输入。
while
循环会一直提示用户继续输入,直到用户输入一个负数。在每次迭代期间,用户输入的数字都会累加到 sum
变量中。
当用户输入负数时,循环终止。最后,显示总和。
Java do…while 循环
do...while
循环类似于 while
循环。但是, do...while
循环体在检查测试条件之前执行一次,也就是说 do...while
循环至少执行一次循环体。
do…while 循环语法
do {
// body of loop
} while(textExpression)
这里,
- 执行循环体。
- 计算测试条件
textExpression
。 - 如果
textExpression
的计算结果为true
,则再次执行循环体。 - 再次计算测试条件
textExpression
。 - 如果
textExpression
的计算结果为true
,则再次执行循环体。 - 这个过程一直持续到
textExpression
的计算结果为false
,然后循环停止。
do…while 循环流程图
Java do while 循环流程图
示例 3:显示 1 到 5 的数字
public class Main {
public static void main(String[] args) {
int i = 1, n = 5;
do {
System.out.println(i);
i++;
} while(i <= n);
}
}
输出:
1
2
3
4
5
这是该程序的工作原理。
迭代 | 变量 | 条件:i <= n |
执行 |
---|---|---|---|
i = 1 n = 5 |
没有检查 | 打印 1; i 增加到 2。 |
|
1 | i = 2 n = 5 |
true |
打印 2; i 增加到 3。 |
2 | i = 3 n = 5 |
true |
打印 3; i 增加到 4。 |
3 | i = 4 n = 5 |
true |
打印 4; i 增加到 5。 |
4 | i = 5 n = 5 |
true |
打印 5; i 增加到 6。 |
5 | i = 6 n = 5 |
false |
循环终止 |
示例 4:正数之和
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int sum = 0;
int number = 0;
// 创建 Scanner 对象获取用户输入
Scanner input = new Scanner(System.in);
// 循环提示用户输入数字,直到用户输入了负数退出循环
do {
sum += number;
System.out.println("输入一个数字");
number = input.nextInt();
} while(number >= 0);
System.out.println("Sum = " + sum);
input.close();
}
}
输出 1:
输入一个数字:1
输入一个数字:2
输入一个数字:3
输入一个数字:4
输入一个数字:-1
Sum = 10
在这里,用户输入一个正数,该数被加到 sum
变量。这个过程一直持续到用户输入负数。当数字为负数时,循环终止并显示总和。
输出 2:
输入一个数字:-1
Sum = 0
在这里,用户输入一个负数。测试条件将是 false
但循环内的代码执行一次。
无限循环
如果循环的条件总是 true
,则循环运行无限次(直到内存已满)。例如,
// 无限 while 循环
while(true){
// body of loop
}
这是一个无限 do...while
循环的例子。
// 无限 do...while 循环
int count = 1;
do {
// body of loop
} while(count == 1)
在上述程序中,测试条件始终为 true
,因此循环体将运行无限次。
for 和 while 循环
for
循环一般在已知迭代次数时使用,例如:
for (let i = 1; i <=5; ++i) {
// body of loop
}
而 while
和 do...while
循环一般在迭代次数未知时使用,例如:
while (condition) {
// body of loop
}