Циклы в Java: for, while, do-while, for-each - Вопросы

Всего: 5 вопросов

1. 

Какие циклы есть в Java и на какие два типа их удобно разделить?

В Java есть четыре оператора цикла: while, do-while, for и for-each. Их удобно разделить на два типа. Тип «пока» (while и do-while) повторяет действие, пока выполняется некоторое условие, — число повторений заранее неизвестно. Тип «n раз» (for и for-each) повторяет действия заранее известное количество раз или перебирает элементы массива/коллекции.

2. 

Чем цикл while отличается от do-while?

Главное отличие — момент проверки условия. В while условие проверяется перед выполнением тела, поэтому, если оно ложно при первой же проверке, тело не выполнится ни разу. В do-while условие проверяется после тела, поэтому тело гарантированно выполнится хотя бы один раз, даже если условие сразу возвращает false. Поэтому do-while удобен, например, для запроса ввода у пользователя: значение нужно прочитать минимум один раз.

3. 

Из каких трёх частей состоит заголовок цикла for и что делает каждая из них?

for (инициализация; условие; итерация) { /*операторы*/ }

Заголовок for состоит из трёх секций, разделённых точкой с запятой. Инициализация — обычно объявляют и задают начальное значение счётчика (чаще всего i); выполняется один раз в начале. Условие — булево выражение, которое проверяется перед каждой итерацией; пока оно истинно, цикл продолжается. Итерация — выражение, изменяющее счётчик после каждого шага (обычно инкремент или декремент). Все три секции необязательны; если опустить их все, получится бесконечный цикл for (;;) { }.

4. 

Чем отличается оператор break от continue внутри цикла?

break немедленно завершает весь цикл — выполнение продолжается со строки, следующей за циклом. continue прерывает только текущую итерацию и сразу переходит к следующей проверке условия, не завершая цикл целиком. Во вложенных циклах оба оператора действуют только на тот цикл, внутри которого они непосредственно находятся; чтобы выйти сразу из нескольких уровней, используются метки (labeled break).

5. 

Для чего нужен цикл for-each и какие у него ограничения?

for-each (улучшенный for, появился в Java 5) служит для последовательного перебора всех элементов массива или коллекции — любого объекта, реализующего интерфейс Iterable. Его запись короче и безопаснее обычного for: нельзя ошибиться с границами индекса. Ограничения: нет доступа к индексу элемента, нельзя изменить сам массив/коллекцию (присваивание итерационной переменной меняет только копию значения) и нельзя обойти лишь часть элементов или идти с нестандартным шагом. В этих случаях нужен обычный for со счётчиком.

Страница 1 из 1