Я новичок в Java, и это простой вопрос, но у меня проблемы с выводом маленьких чисел от 1 до 100. Маленькие числа - это те, которые меньше 20, и я хочу, чтобы моя программа выводила «маленький x» для каждого маленького числа.

Когда я запускаю это, я не получаю то, что я предполагаю, я просто получаю "маленький x", напечатанный 100 раз.

Вот мой код:

class ExerciseA {
 public static void main(String[] args) {
    int x = 1;
    while ( x  <  100 ) {
        x = x + 1;
        if( x > 20) {
         System.out.println("small x");
      }
    }
  }
}
-3
NoobCoder 4 Сен 2016 в 08:03

3 ответа

Лучший ответ

> означает большее, но вы хотите меньшего. Так что используйте <. Еще одна вещь в вашем коде, 1 не будет напечатан, поскольку он увеличивается перед печатью. Это должно быть:

int x = 0;
while ( x  <  100 ) {
    x++; // shorter than x = x + 1;
    if (x < 20) {
        System.out.println("small x");
       //System.out.println("small " + x); //if want to print like small 1, small 2 etc.
  }
}
5
Shahid 4 Сен 2016 в 06:34

Ваш System.out.println печатает маленький x, поскольку он использует всю строку вместо использования значения переменной x.

Кроме того, если вы хотите напечатать маленький x для чисел меньше 20, вы должны использовать x <20.

int x = 0;
while ( x  <  100 ) {
    x = x + 1;
    if( x < 20) {
     System.out.println("small " + x);
  }
}
0
pranshuagarwal 4 Сен 2016 в 05:07

Вы можете записать такие циклы в более подходящем для цикла стиле:

for (int i = 1; i <= 100; i++) {
  if (isSmall(i)) {
     System.out.println("small i");
  }

С помощью небольшого «рефакторинга», поставив галочку «это небольшое число» в отдельный метод:

private boolean isSmall(int i) {
  return i < 20;
}

К использованию таких небольших методов следует привыкнуть как можно скорее, поскольку они помогают «изолировать» определенные функции. Еще одно изменение, которое я сделал: в информатике переменные для целых чисел обычно называются «i, j, k» ... и так далее; тогда как x, y, ... будет для чисел с плавающей запятой!

И, конечно же: вы ошиблись в сравнении - если вам нужны числа меньше 20, то вы должны так сказать (i < 20).

0
GhostCat 4 Сен 2016 в 06:12