如何让循环在我的Java程序中工作?

时间:2016-08-31 01:53:08

标签: java loops

import java.util.Scanner;
import static java.lang.System.out;

public class TestingStuf2 {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);

            out.println("Enter a number");

            int number = keyboard.nextInt();

        while (number < 10) {
            if (number < 10) {
               out.println("This number is too small.");
               keyboard.nextInt();
           }else{
               out.println("This number is big enough.");
           }    
        }
        keyboard.close();
    }

}

我只是在循环此代码时遇到一些麻烦。我刚刚开始学习Java,这些循环一直困扰着我。当我运行这个程序时,如果我输入一个小于10的数字,我会收到“”这个数字太小“的消息”然后它允许我再次输入。但是如果我输入一个大于10的数字,我会得到同样的消息。另外,如果我输入的第一个数字大于10,我根本就没有消息,程序就结束了。为什么会这样?

1 个答案:

答案 0 :(得分:3)

我认为您忘记重新分配number变量。这就是

的原因
  

但是,如果我输入一个大于10的数字,我会得到相同的数字   消息。

请尝试以下代码。感谢@ Dev.Joel的评论。我已经将循环修改为do-while以更好地适应这种情况。

import java.util.Scanner;
import static java.lang.System.out;

public class TestingStuf2 {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);

            out.println("Enter a number");

            int number = keyboard.nextInt();

        do{
            if (number < 10) {
               out.println("This number is too small.");
               /*
                * You should reassign number here
                */
               number = keyboard.nextInt();
           }else{
               out.println("This number is big enough.");
           }    
        }while(number < 10);
        keyboard.close();
    }

}

我建议您使用break point调试问题。例如,在您的情况下,您将2分配给number和&#34;此数字太小&#34;打印出来。接下来,使用keyboard.nextInt()让用户输入另一个int。但是,该数字仍为2.因此,无论您此次输入什么,条件number < 10都为真,并再次打印"This number is too small"