Java за неделю. Вводный курс - страница 16



Пример цикла for:

for (int i=0; i <=10; i++) {

System.out.println (i);

}

Если тело цикла состоит из одной команды, то можно обойтись без фигурных скобок:

for (int i=0; i <=10; i++) System.out.println (i);

4.3.4 Вложенные циклы

Оператор цикла может быть вложен в тело другого цикла. В этом случае при каждом проходе внешнего цикла будет срабатывать и полностью выполняться вложенный цикл. Вложенные циклы обычно требуются для последовательного перебора элементов двумерных или многомерных структур (матриц, массивов, таблиц) и выполнения действий с этими элементами.

В листинге 4.3 во внешнем цикле последовательно перебираются дни недели weekDay, с первого по седьмой. При каждом проходе цикла выводится на печать номер дня недели, затем запускается вложенный цикл. Когда вложенный цикл отработал, выполняется перенос строки при помощи управляющей последовательности \n и запускается следующая итерация внешнего цикла.

Во вложенном цикле последовательно перебираются часы внутри текущего дня dayHour, с 1 по 24. Значения счетчика часов последовательно выводятся в одной строке через запятую с пробелом.


Листинг 4.3 Пример использования вложенного цикла

public class Listing4_3 {

public static void main (String [] args) {

for (int weekDay=1; weekDay <=7; weekDay++) {

System.out.print («День недели: "+weekDay+" Часы:»);

for (int dayHour=1; dayHour <=24; dayHour++) {

System.out.print (dayHour+«»);

}

System.out.print (»\n»);

}

}

}

В качестве самостоятельной работы сделайте так, чтобы во внешнем цикле вместо номера дня недели выводилось его название. Ваших знаний уже достаточно, чтобы решить эту задачу, используя один из ранее изученных операторов. Но решение пока не будет оптимальным с точки зрения программирования. В главе 5 вы познакомитесь с массивами, которые предназначены для работы с упорядоченными наборами значений.


4.4 Операторы досрочного выхода

Иногда возникает необходимость досрочно прервать выполнение цикла при возникновении определенной ситуации. Для этого используется уже знакомый вам оператор break, а также операторы continue и return.


4.4.1 Оператор досрочного выхода break

Оператор break полностью прерывает выполнение текущего цикла. Управление передается командам, следующим за циклом.

Давайте отвлечемся от сухих описаний и вместе напишем программу, в которой применяется оператор break. Эта программа генерирует случайное число от 1 до 10 и предлагает пользователю угадать его.

Прежде всего, сгенерируйте случайное число. Для этого вам придется забежать немного вперед и воспользоваться приемами объектно—ориентированного программирования. Импортируйте класс генератора случайных чисел Random:

import java. util. Random;

Здесь надо сделать небольшое отступление. Генератор случайных чисел – это обычная компьютерная программа, жесткий алгоритм, в котором нет места случайностям. Поэтому на самом деле генерируются псевдослучайные числа. Равномерность распределения вероятности по диапазону генерации зависит от качества генератора. Чтобы при каждом запуске программы генератор не выдавал одну и ту же последовательность чисел, его надо инициализировать неким начальным значением, которое является случайным по отношению к программе и не повторяется при запуске. На практике для инициализации генератора часто используют системное время компьютера в миллисекундах. Время запуска программы заранее не определено и никак не связано с системными часами. Поэтому вероятность повторения времени запуска программы с точностью до миллисекунды исчезающе мала.