Таким образом, при использовании в классе цикла while следует соблюдать как минимум три основных правила:
1. Переменная, которая используется в условии заголовка цикла, должна получать значение до начала цикла.
2. Условие, входящее в состав заголовка цикла, является условием только еще одного повтора цикла.
3. Следует менять в теле цикла значение переменной, которая используется в условии заголовка цикла, но менять так, чтобы сохранялся шанс на прекращение повторов цикла.
Существует и еще одна очень существенная разница между циклами for и while.
При изучении цикла for мы говорили, что не рекомендуется изменять значение переменной-счетчика внутри (в теле) цикла. А вот в цикле while все как раз наоборот: обязательно надо изменять переменную, от которой зависит исполнение или неисполнение цикла в очередной раз.
Как определить, какой из циклов, for или while, следует использовать при решении?
Однозначного, простого, универсального правила не существует, но можно дать довольно простую рекомендацию: прочитав условие задания, постарайтесь понять, можно ли каким-то образом заранее определить количество повторов цикла. Если это возможно – стоит использовать цикл for, если такой возможности нет – скорее всего, надо писать цикл while.
|
|
Пример с использованием "кода прерывания"
Рассмотрим следующий пример: " Напишите класс, который принимает с клавиатуры целые числа. Ввод данных завершится, когда с клавиатуры будет введено значение -1. Класс должен выводить на экран количество значений, которые были введены с клавиатуры, но не засчитывать значение -1 ".
Обратите внимание: фразы вроде "ввод завершится, когда…", "будет продолжаться, пока…", "до тех пор, пока" и им подобные – достаточно ясный намек на то, что число проходов цикла заранее неизвестно. Иными словами: надо будет использовать цикл while.
Кроме того, в классе нам понадобится переменная-счетчик – и очень важно не забыть сделать так, чтобы в последний проход по телу цикла переменная-счетчик ни в коем случае не увеличивалась. Иными словами, для серии 6, 9, 234, -9, 0, 6, -1 – значение переменной-счетчика должно быть равно 6, а не 7.
Решение может выглядеть так:
import java.util.*;