类似while循环和while循环之间的输出差异?

IAm*_*rus 0 java loops compare while-loop do-while

对于我的Java类,我被要求创建一个while循环,然后将其转换为do-while循环,然后比较输出.这是个问题:

  1. 用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)

pax*_*blo 5

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)

前者抱怨无法访问的代码,因为它永远不会进入循环.后者不会抱怨,因为它运行循环一次.