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

时间:2015-01-30 19:32:57

标签: 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 ");


    }

}
}

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

if( num1==0){

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

    }
    else{

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

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

2 个答案:

答案 0 :(得分:7)

您的计划运作良好。在您输入0之前,它会让您输入数字。只是在您键入0之前,您将继续看到“程序结束”。你的输出声明让自己感到困惑。

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

答案 1 :(得分:-1)

我采取了你的第一种方法,只是改变了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 ");
        }
    }
}