Java 中的 while 循环无法正常工作

while loop in Java not working as I wanted

我想写一个接受用户输入的程序,只要输入不为 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 ");


    }

}
}

我也想过/尝试过,但也没用

if( num1==0){

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

    }
    else{

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

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

您的程序运行良好。它会让你一直输入数字,直到你输入 0。只是您会一直看到 "Program ends",直到您键入 0。你的输出语句让你自己感到困惑。

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

我采用了您的第一种方法,只是更改了 while 循环,所以您最好说一下,您做错了什么。 看看:

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 {
            do
                System.out.print("Enter more numbers: ");
            while (!(userInput.nextInt() == 0));
            System.out.print("Progam ends ");
        }
    }
}