Главная » Java » Повторение действий с помощью циклов

0

Циклы   используются,   для   того   чтобы  выполнить   какое-­?нибудь действие несколько  раз.  Например,  нужно  напечатать  поздравление для  нескольких  победителей.  Если  вы заранее  знаете  сколько  раз повторить действие -­? используйте цикл for:

int  totalPlayers = players.length;

int counter;

for (counter=0; counter <totalPlayers; counter++){  String thePlayer = players[counter];

System.out.println("Поздравляем,  "+ thePlayer+"!");

}

JVM  выполняет  каждую  строку  между  фигурными  скобками,  и  затем возвращается   к первой строке цикла для того, чтобы увеличить значение  counter  (счётчика)  и  проверить  условие  завершения  цикла. Этот код означает следующее:

Напечатать значение элемента массива, чей номер индекса совпадает со  значением  счётчика.  Начать  с  элемента  с  номером  0  (counter=0),  и увеличивать  значение  counter  на единицу  (counter++). Продолжать до тех пор, пока counter меньше totalPlayers (counter<totalPlayers).

Существует  ещё  одно  ключевое  слово  для  создания  циклов -­? while. Втаких  циклах  не  нужно  точно  знать,  сколько  раз  будет  повторяться

действие, но необходимо задать условие окончания цикла.   Давайте посмотрим,  как  можно поздравить участников игры  с помощью цикла while,   он  закончится,  когда  counter  (счётчик)  станет  равным totalPlayers:

int  totalPlayers = players.length;

int counter=0;

while (counter< totalPlayers){

String thePlayer = players[counter]; System.out.println("Поздравляем,  "+ thePlayer + "!"); counter++;

}

В  главе 9 рассказано, как сохранить данные в файл на диске и как считать  их обратно в память программы.  Если вы  читаете результаты игры  из  файла, лежащего на диске, то  заранее неизвестно, как много записей  было сохранено в файл.   Скорее всего, придется  считывать такие записи с помощью цикла while.

Так же  можно  использовать  ещё  два  оператора  в  циклах:  break  иcontinue. Ключевое слово break  используется,  чтобы выпрыгнуть  из  цикла, когда  некоторое условие становиться истинным (true). Скажем, мы  не хотим  печатать более трёх поздравлений, вне зависимости от того, как много игроков учавствовало.В  следующем  примере,  после  вывода  элементов  массива  0,  1  и  2, выполнение программы выйдет  из цикла  из-­?за инструкции  break  и продолжится со  строки после закрывающей фигурной скобки.Обратите  внимание на двойной знак равенства в операторе if. Значение переменной  counter сравнивается с числом  3. Одинарный знак  равно означал бы, что значение 3 присваивается переменной  counter. Если перепутать  == с  = в  операторе if, то программа будет работать, но неправильно и такую ошибку иногда очень не легко найти:

int counter =0;

while (counter< totalPlayers){

if (counter == 3){

break; // Выпрыгиваем из цикла

}

String thePlayer = players[counter]; System.out.println("Congratulations,  "+thePlayer+ "!"); counter++;

}

Оператор  continue позволяет пропустить выполнение строк, стоящих после  него и  вернуться  к началу  цикла.  Представим,  что  мы хотим поздравить  всех,   кроме   Дэвида   –   continue   вернёт   выполнение программы к началу цикла.

while (counter< totalPlayers){

counter++;

String thePlayer = players[counter];

if (thePlayer.equals("David"){

continue;

}

System.out.println("Congratulations,  "+ thePlayer+ !");

}

Есть  ещё один тип оператора while, который начинается со слова do,например:

do {

// Здесь ваш код, что-нибудь считающий

} while (counter< totalPlayers);

В таких циклах условие проверяется после выполнения кода, стоящего между  фигурными  скобками.  Таким  образом,  этот  код  выполнится хотя  бы  один  раз. Циклы, в которых while стоит вначале, могут  не выполниться ни разу, если условие ложно (false).

Официальный  учебник по Java:

http://download.oracle.com/javase/tutorial/java/index.h  tml

 

Практические упражнения

 

              1.  Создайте новый класс и назовите его TemperatureConverter. Добавьте в него метод для преобразования температур, с такой сигнатурой:public String convertTemp

(int temperature, char convertTo)

Если  аргумент convertTo  равен  F,   то температура должна  быть  преобразована  в  Фаренгейты, если C,  то  в Цельсии. Когда вы будете  вызывать   этот   метод,   поместите  значение  аргумента типа char в одинарные  кавычки. 2.   Объявите   метод   convertGrades()   класса  ReportCard как статический и удалите строку инициализации класса из метода main(). Практические упражнения для умников и умницs

Вы  заметили, что в примере с ключевым  словом  continue мы  переместили  строку  с  counter++; в начало цикла?

Что бы произошло, если бы мы  оставили эту  строчку  в   конце цикла,   как  это   было   в  примере с break?

Источник: Java  Programming for Kids, Parents and Grandparents by Yakov Fain

По теме:

  • Комментарии