Потому что это зависит от фактических значений m и n.
Например, с 7 и 2, это будет три выражения if.
При других входных данных это должно быть другое число if выражений.
В Java эту проблему решает оператор while.
Теперь эта программа делает то же самое, что и прежде, повторяет выражение, пока выполняется условие.
Но теперь у нас есть одно большое преимущество.
Выражения повторяются столько раз, сколько это необходимо, автоматически.
Но теперь вы должны быть очень осторожны при написании условия while.
Потому что есть опасность войти в бесконечный цикл, если условие while никогда не прекратится.
Преимущество цикла while заключается в том, что нам не нужно заранее знать, сколько раз мы должны что-либо повторять.
Мы повторяем, пока не будет достигнута цель, выраженная логическим условием.
Иногда, однако, мы знаем, сколько раз нам нужно что-либо повторить.
Это легко реализовать подсчетом.
Хитрость заключается в том, чтобы ввести счетчик.
Это целочисленная переменная, которую мы обновляем на каждой итерации.
Здесь существует три важных элемента: величина, с которой мы хотим начать, значение в конце и шаг между значениями.
Здесь мы начинаем с 0 и заканчиваем 3. И шаг 1.
Поэтому мы выполняем четыре итерации для i равного 0, 1, 2 и 3.
Теперь, помимо подсчета, мы можем захотеть что-то сделать в теле цикла.
В этом случае предположим, что у нас есть другая переменная, n, которую мы хотим умножать на 2 при каждой итерации.
Так как такого рода подсчет используется часто, в Java для этого есть специальная конструкция.
А именно, цикл for.
Этот цикл объединяет три важных момента для переменной счетчика:
Ее инициализацию, условие остановки, и выражение обновления.
Имейте в виду, что обновление выполняется после того, как выполняется тело цикла, а не раньше.
Для цикла for скобки являются обязательными, а также две точки с запятой внутри.
Фигурные скобки необходимы только в том случае, если есть более одного выражения в теле цикла.
Но это хорошая практика, чтобы всегда писать их.
Как вы видели, если в начальный момент условное выражение, управляющее циклом while, ложно, тело цикла вообще не будет выполняться.
Однако иногда желательно выполнить тело цикла хотя бы один раз, даже если в начальный момент условное выражение ложно.
Иначе говоря, существуют ситуации, когда проверку условия прерывания цикла желательно выполнять в конце цикла, а не в его начале.
И в Java есть именно такой цикл: do-while.
Этот цикл всегда выполняет тело цикла хотя бы один раз, так как его условное выражение проверяется в конце цикла.
В приведенном примере тело цикла выполняется до первой проверки условия завершения.
Мы уже видели оператор break в выражении switch.
Но оператор break также может прерывать любой цикл.
Предположим, у вас есть цикл.
И иногда желательно немедленно завершить цикл, не проверяя условие.
В таких случаях используется оператор break.
Оператор break немедленно завершает цикл, и управление программой переходит к следующему выражению, следующему за циклом.
Оператор break почти всегда используется вместе с выражением if else.
Также иногда желательно не прервать цикл, а пропустить код тела цикла и перейти к следующей итерации.
Оператор continue пропускает текущую итерацию цикла и когда выполняется оператор continue, управление программой переходит к концу цикла.
Затем проверяется условие, которое управляет циклом.
Оператор continue также почти всегда используется вместе с выражением if else.
Массивы
На почте мы могли арендовать ячейку, чтобы получать письма.
Есть также много других мест, где мы можем арендовать ячейку: в банке, для хранения ценностей, на вокзале, чтобы оставить багаж.
Ячейки обычно обозначаются последовательными номерами.
Ячейки или шкафчики могут быть разного размера.