而Java中的循环不能按我的意愿工作

She*_*man 0 java while-loop

我想写一个用户输入的程序,只要输入不是0就会继续要求输入.

我是怎么做到的:我决定检查第一个输入是否为0,如果为0则程序将立即退出.如果第一个输入不是0,那么它将要求用户输入更多数字.

我的问题:它只询问我2次,然后执行程序结束语句.

我的守则

import java.util.Scanner;


public class MyArList {

private static final int num2 = 0;

public static void main (String[] args){


    Scanner userInput = new Scanner(System.in);

    System.out.print("Enter 1st number: ");
    int num1 = userInput.nextInt(); 

    if (num1==0){
        System.out.println("program exits");
    }
    else
    {System.out.print("Enter more numbers: ");



    while(!(userInput.nextInt()==0))


        System.out.print("Progam ends ");


    }

}
}
Run Code Online (Sandbox Code Playgroud)

我也想过/尝试过,但那也不起作用

if( num1==0){

            System.out.println("Program exits");

    }
    else{

        do{
            System.out.print("Enter more numbers: ");
        int num2 = userInput2.nextInt(); 
        }while(!(num2==0));
Run Code Online (Sandbox Code Playgroud)

感谢您宝贵的时间和意见.

rge*_*man 7

你的程序运行良好.它会让你输入数字,直到你输入0.只是在你输入之前你会继续看到"程序结束" 0.你的输出声明让自己感到困惑.

在你的while循环内,打印"Keep entering more numbers"而不是"Program ends ".循环完成"Program ends"后打印while.