цикле последовательно перебираются часы внутри текущего дня 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;
Здесь надо сделать небольшое отступление. Генератор случайных чисел – это обычная компьютерная программа, жесткий алгоритм, в котором нет места случайностям. Поэтому на самом деле генерируются псевдослучайные числа. Равномерность распределения вероятности по диапазону генерации зависит от качества генератора. Чтобы при каждом запуске программы генератор не выдавал одну и ту же последовательность чисел, его надо инициализировать неким начальным значением, которое является случайным по отношению к программе и не повторяется при запуске. На практике для инициализации генератора часто используют системное время компьютера в миллисекундах. Время запуска программы заранее не определено и никак не связано с системными часами. Поэтому вероятность повторения времени запуска программы с точностью до миллисекунды исчезающе мала.
Итак, создайте новый объект класса Random и инициализируйте его при помощи значения системного времени компьютера в миллисекундах. Пусть это будет новый объект с именем rnd:
Random rnd = new Random(System.currentTimeMillis ());
Чтобы сгенерировать целое число, воспользуйтесь методом nextInt (limit). Этот метод генерирует псевдослучайное целое число в диапазоне от нуля до предела limit, но не включая его. Например, метод nextInt (10) возвратит целое число в диапазоне