对于我的Java类,我被要求创建一个while循环,然后将其转换为do-while循环,然后比较输出。这是个问题:
- 使用do while循环替换问题4中的while循环。问题4的输出与这个问题之间可能存在什么差异?
醇>
我无法找到输出上的差异,可能与否。以下是两者的代码和输出。
while循环
package fordemo;
import java.util.Scanner;
public class ForDemo {
public static void main(String[] args) {
System.out.println("Input a number:");
Scanner user_input = new Scanner (System.in);
int number = user_input.nextInt();
int n = -1;
while (n < number){
n=n+2;
System.out.print(n + " ");
}
}
}
运行:
Input a number:
15
1 3 5 7 9 11 13 15 BUILD SUCCESSFUL (total time: 1 second)
do-while循环
package fordemo;
import java.util.Scanner;
public class ForDemo {
public static void main(String[] args) {
Scanner user_input = new Scanner (System.in);
System.out.println("Input a number:");
int number = user_input.nextInt();
int n = -1;
do {
n+=2;
System.out.print(n + " ");
}
while (n < number);
}
}
运行:
Input a number:
11
1 3 5 7 9 11 BUILD SUCCESSFUL (total time: 1 second)
答案 0 :(得分:5)
while (condition) {something}
和do {something} while (condition)
之间的区别在于后者始终至少执行一次。
前者在迭代之前检查条件,后者在之后检查它
如果您输入-1
或更少,前者将不会给您任何东西,而后者会给您1
。
在最简单的形式中,您可以看看两行之间的区别:
while (false) { System.out.println("x"); }
do { System.out.println("x"); } while (false);
前者抱怨无法访问的代码,因为它永远不会进入循环。后者不会抱怨,因为它会循环一次。
答案 1 :(得分:1)
do while循环将至少执行一次,而while循环甚至可能在其条件不满足时甚至不执行一次。 do while在第一次迭代后开始检查其状态。
答案 2 :(得分:0)
当特定条件为真时,while语句会不断执行一个语句块。 do-while和while之间的区别在于do-while在循环的底部而不是顶部计算它的表达式。因此,在您的情况下,如果您输入的值较少,则-1
while loop
将执行0
次,而do-while
循环将执行1 times
答案 3 :(得分:0)
第一次运行while循环时,n设置为-1,然后检查是否为n
在do-while循环中,你的代码将n设置为-1,然后将其提升为2.打印该行,然后检查是否为n
因此,如果输入为-1,则while循环不会打印任何内容(因为-1&lt; -1计算结果为false)。但你的do-while循环将打印1
答案 4 :(得分:0)
首先测试条件然后执行正文
while (n < number){ // Top tested loop or (pre test loop)
n=n+2;
System.out.print(n + " ");
}
首先执行循环体,然后测试条件;
do {
n+=2;
System.out.print(n + " ");
}
while (n < number); // Bottom tested loop (post test loop)