关于使用for循环的初学者java Q,if语句和while循环

时间:2018-02-05 00:17:25

标签: java

Scanner userIn = new Scanner(System.in);                                        
System.out.println("enter number");                                     
int no = userIn.nextInt();                                      
while (no > 20)                                     
{                                       
  System.out.println("too big");                                        
  no = userIn.nextInt();                                        
  {                                     
    if (no <= 20)                                       
    {                                       
      for (int i=0; i < no; i++)                                        
      {                                     
        System.out.println(i+1);                                        
      }                                     
    }                                       
  }                                     
}

我很抱歉提出这样一个愚蠢的问题,但我开始学习编程,我无法理解教程。我试图编码如果一个给定的输入大于20,它会给出“太大”的输出,并要求你再次输入一个数字,直到它是20或更少。如果数字是20或更少,它将从1计数到键盘所选的数字。为什么这只有在我输入一个大于20且之后的数字时才有效,但是在编译之后不是直接的,这是错误的位置,请问我该如何解决这个问题?谢谢。

2 个答案:

答案 0 :(得分:2)

如果你的号码(no)小于20,那么你就永远不会进入while循环。因此,它永远不会在for循环内执行while循环。

做这样的事情

Scanner userIn = new Scanner(System.in);                                        
System.out.println("enter number");                                     
int no = userIn.nextInt();                                      
while (no > 20)                                     
{                                       
  System.out.println("too big");                                        
  no = userIn.nextInt();                           
}
 for (int i=0; i < no; i++)                                        
      {                                     
        System.out.println(i+1);                                        
      }                                     

答案 1 :(得分:0)

您可以读取无穷大,直到用户输入小于20的数字

 Scanner userIn = new Scanner(System.in);
            System.out.println("enter number");
            int no;
            while ((no = userIn.nextInt()) > 20) {
                System.out.println("too big");
             // the while loop will stop when a number less than 20 is entered
            }

            for (int i = 0; i < no; i++) {
                System.out.println(i + 1);
            }

<强> TEST: enter image description here