Всем привет, здесь мы учимся программировать на Java, урок восьмой. Let’s get started!
На прошлом уроке мы изучили цикл while, однако он мог вам показаться каким-то простоватым… Не в смысле понимания, а в смысле структуры. Действительно, цикл всего-навсего проверяет одно условие, и если оно верно, то выполняет тело цикла. На практике же для большинства задач используется цикл for, давайте взглянем, как он выглядит:
for(инициализация; условие; итерация){
тело цикла;
}
Итак, давайте по порядку. Инициализация — это создание счетчика. Помните прошлый урок, где мы пользовались переменной извне цикла? Так вот, цикл for позволяет создать переменную, которая будет доступна только внутри цикла, а после него исчезнет — зачастую ее называют переменной i, о ничто не мешает назвать ее иначе. Дальше идет условие, ну тут все ясно — пока условие верно, тело цикла будет работать раз за разом, пока оно не станет ложным. Последним элементом цикла for является итерация. Если вспомните пример с обратным отсчетом, то мы там внутри цикла уменьшали счетчик. В данном же цикле есть возможность задать каким образом будет изменяться значение счетчика. Давайте взглянем на все тот же пример с обратным отсчетом запуска ракеты, чтобы все стало на свои места:
1 2 3 4 5 6 7 8 9 10 |
public class Main { public static void main(String[] args) { for(int i=5; i>=0; i--){ System.out.println("Через "+i+"..."); } System.out.print("Старт!"); } } |
Результат программы:
1 2 3 4 5 6 7 |
Через 5... Через 4... Через 3... Через 2... Через 1... Через 0... Старт! |
Интересный факт — не обязательно заполнять каждое поле! Смотрите:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Main { public static void main(String[] args) { int i=5; for(; i>=0;){ System.out.println("Через "+i+"..."); i--; } System.out.print("Старт!"); } } // Выведет то же самое, что и первый пример |
Что-то этот цикл напоминает… Разве это не то же самое, что цикл while? Ну, в данном случае это именно так. А если убрать и условие, то будет бесконечный цикл, и смысла от него как вы понимаете не совсем.
Я обещал рассказать об еще одной интересной штуке на прошлой занятии, и называется она break, что переводится с английского как прервать. Данная команда нужна для того, чтобы заблаговременно прекратить выполнение цикла. Давайте приведу пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Main { public static void main(String[] args) { System.out.println("Считаю до 5, кто не спрятался - я не виноват!"); int counter = 1; while(true){ System.out.println(counter); if(counter == 5) break; counter++; } } } |
Так, может показаться чем-то сложным, но не бойтесь, пройдемся по порядку. Сначала мы просто печатаем строку и переходим на следующую, так как использовали System.out.println(). Далее, создали счетчик и бесконечный цикл. Почему бесконечный? Потому что в условии у нас просто написано true, что всегда является истиной. Это не переменная типа boolean, равная true, а само значение, так что цикл будет бесконечным, если его не прервать. Нам нужно посчитать до пяти, следовательно, когда counter будет равно 5, мы должны выйти из цикла, и для этого и используем break. Результатом программы будет:
1 2 3 4 5 6 |
Считаю до 5, кто не спрятался - я не виноват! 1 2 3 4 5 |
Заметьте, что после 5 есть еще одна пустая строка, и это не опечатка автора, а результат работы нашего кода. Ведь последней командой, которую она выполнила, была команда System.out.println(), а она как мы помним после вывода данных также печатает перенос строки.
Ну, как-то так, надеюсь, что материал успешно усвоен. Всем удачи, чао!
Переходите на следующий урок: