IAm*_*rus 0 java loops compare while-loop do-while
对于我的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 + " ");
}
}
}
Run Code Online (Sandbox Code Playgroud)
跑:
Input a number:
15
1 3 5 7 9 11 13 15 BUILD SUCCESSFUL (total time: 1 second)
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
跑:
Input a number:
11
1 3 5 7 9 11 BUILD SUCCESSFUL (total time: 1 second)
Run Code Online (Sandbox Code Playgroud)
while (condition) {something}和之间的区别在于do {something} while (condition)后者总是至少执行一次.
前者在迭代之前检查条件,后者在之后检查它.
如果你输入-1或更少,前者将不给你任何东西,后者会给你1.
在最简单的形式中,您可以看看两行之间的区别:
while (false) { System.out.println("x"); }
do { System.out.println("x"); } while (false);
Run Code Online (Sandbox Code Playgroud)
前者抱怨无法访问的代码,因为它永远不会进入循环.后者不会抱怨,因为它运行循环一次.