/ / Начинаещ java Q относно използването за цикъл, ако оператор и докато цикъл [дубликат] - java

За начинаещи java Q за използване за цикъл, ако изявление и докато цикъл [дубликат] - 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 за отговор № 1

Просто поставя, ако вашият номер (no) е по-малко от 20, Никога няма да влезете в цикъл докато. Следователно той никога няма да изпълни вашия 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);
}

0 за отговор № 2

можете да четете безкрайността, докато потребителят не въведе число, по-малко от 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);
}

ТЕСТ: въведете описанието на изображението тук