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且之后的数字时才有效,但是在编译之后不是直接的,这是错误的位置,请问我该如何解决这个问题?谢谢。
答案 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);
}