Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Итерации

while, do-while и for управляют циклом и иногда классифицируются как итерационные инструкции. Инструкция повторяется до тех пор, пока управляющее логическое выражение не станет ложным. Форма цикла while следующая:

while(Логическое выражение) инструкция

Логическое выражение вычисляется один раз в начале цикла, а затем каждый раз перед каждой будущей итерацией для инструкции.

Здесь приведен пример, который генерирует случайные числа, пока не получено определенное состояние:

//: c03:WhileTest.java// Демонстрация цикла while. public class WhileTest { public static void main(String[] args) { double r = 0; while(r < 0.99d) { r = Math.random(); System.out.println(r); } }} ///:~

Здесь используется статический метод random( ) из библиотеки Math, который генерирует значения типа doubleв пределах от 0 до 1. (Это включает 0, но не включает 1.) Сравнительное выражение для while говорит, “продолжать выражение этого цикла, пока не встретится число 0.99 или больше”. Всякий раз, когда вы запускаете программу, вы будете получать список чисел разной длины.

Do-while

Форма для do-while следующая:

do инструкцияwhile(Логическое выражение);

Главное отличие между while и do-while в том, что инструкция в цикле do-while всегда выполняется не менее одного раза, даже если вычисленное выражение ложное с самого начала. В цикле while, если условие ложное в первый раз, инструкция никогда не выполнится. На практике do-while используется реже, чем while.

For

Цикл for выполняет инициализацию перед первой итерацией. Затем он выполняет сравнение, а в конце каждой итерации выполняется, некоторого рода, “шагание”. Форма цикла for следующая:

for(инициализация; логическое выражение; шаг) инструкция

Любое из выражений: инициализация, логическое выражение или шаг, может быть пустым. Выражение проверяется перед каждой итерацией, и как только при вычислении получится false, выполнение продолжится со строки, следующей за инструкцией for. В конце каждого цикла выполняется шаг.

Цикл for обычно используется для задач “подсчета”:

//: c03:ListCharacters.java// Демонстрация цикла "for" для составления// списка всех ASCII символов. public class ListCharacters { public static void main(String[] args) { for( char c = 0; c < 128; c++) if (c != 26 ) // ANSI Очистка экрана System.out.println( "value: " + (int)c + " character: " + c); }} ///:~

Обратите внимание, что переменная c определена в том месте, где она используется, внутри управляющего выражения цикла for, раньше начала блока, указанного открывающей фигурной скобкой. Область видимости c- это выражение, управляемое for.

Традиционные процедурные языки, типа C, требуют, чтобы все переменные были определены в начале блока, чтобы, когда компилятор создавал блок, он мог зарезервировать место для этих переменных. В Java и C++ вы можете распределить декларацию ваших переменных по всему блоку, определяя их в том месте, где они вам нужны. Это допускает естественный стиль кодирования и делает код легче для понимания.

Вы можете определить несколько переменных внутри инструкции for, но они должны быть одного типа:

for(int i = 0, j = 1; i < 10 && j != 11; i++, j++) /* тело цикла for */;

Определение intв инструкции forраспространяется на iи j.Способность определять переменные в управляющем выражении является ограничением для цикла for. Вы не можете использовать этот метод ни с каким другим выражением выбора или итераций.


Дата добавления: 2015-09-11; просмотров: 5 | Нарушение авторских прав

Где живет хранилище | Список аргументов | Ключевое слово static | Ваша первая Java программа | Вставка HTML | Упражнения | Присвоение | Математические операторы | Операторы сдвига | Литералы |


lektsii.net - Лекции.Нет - 2014-2021 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав