Основные управляющие конструкции. Управляющие конструкции

Аннотация: Рассматриваются управляющие конструкции языка Си: ветвления "if-else" и "if-else if", циклы "while" и "for". Приводятся также конструкции, которых лучше избегать: "switch", "do-while", "goto". Рассматривается представление программы в виде набора функций, прототипы функций, методы передачи входных и выходных параметров. Перечисляются различные виды памяти: статическая, стековая, динамическая (куча) и способы работы с памятью в Си. Вводится составной тип данных "структура". Материал иллюстрируется многочисленными примерами программ: решение квадратного уравнения, вычисление квадратного корня, вычисление НОД двух чисел и расширенный алгоритм Евклида, печать N первых простых чисел, рекурсивный обход дерева и др.

Управляющие конструкции

Управляющие конструкции позволяют организовывать циклы и ветвления в программах. В Си всего несколько конструкций, причем половину из них можно не использовать (они реализуются через остальные).

Фигурные скобки

Фигурные скобки позволяют объединить несколько элементарных операторов в один составной оператор, или блок. Во всех синтаксических конструкциях составной оператор можно использовать вместо простого.

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

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

Приведем фрагмент программы, обменивающий значения двух вещественных переменных:

double x, y; . . . { double tmp = x; x = y; y = tmp; }

Здесь, чтобы обменять значения двух переменных x и y , мы сначала запоминаем значение x во вспомогательной переменной tmp . Затем в x записывается значение y , а в y - сохраненное в tmp предыдущее значение x . Поскольку переменная tmp нужна только внутри этого фрагмента, мы заключили его в блок и описали переменную tmp внутри этого блока. По выходу из блока память, занятая переменной tmp , будет освобождена.

Оператор if

Оператор if ("если") позволяет организовать ветвление в программе. Он имеет две формы: оператор "если" и оператор "если...иначе". Оператор "если" имеет вид

if (условие) действие;

оператор "если...иначе" имеет вид

if (условие) действие1; else действие2;

В качестве условия можно использовать любое выражение логического или целого типа. Напомним, что при использовании целочисленного выражения значению "истина" соответствует любое ненулевое значение. При выполнении оператора "если" сначала вычисляется условное выражение после if . Если оно истинно, то выполняется действие, если ложно, то ничего не происходит. Например, в следующем фрагменте в переменную m записывается максимальное из значений переменных x и y :

double x, y, m; . . . m = x; if (y > x) m = y;

При выполнении оператора "если...иначе" в случае, когда условие истинно, выполняется действие, записанное после if ; в противном случае выполняется действие после else . Например, предыдущий фрагмент переписывается следующим образом:

double x, y, m; . . . if (x > y) m = x; else m = y;

Когда надо выполнить несколько действий в зависимости от истинности условия, следует использовать фигурные скобки, объединяя несколько операторов в блок, например,

double x, y, d; . . . if (d > 1.0) { x /= d; y /= d; }

Здесь переменные x и y делятся на d только в том случае, когда значение d больше единицы.

Фигурные скобки можно использовать даже, когда после if или else стоит только один оператор. Они улучшают структуру текста программы и облегчают ее возможную модификацию. Пример:

double x, y; . . . if (x != 0.0) { y = 1.0; }

Если нужно будет добавить еще одно действие, выполняемое при условии " x отлично от нуля", то мы просто добавим строку внутри фигурных скобок.

Выбор из нескольких возможностей: if...else if...

Несколько условных операторов типа "если...иначе" можно записывать последовательно (т.е. действие после else может снова представлять собой условный оператор). В результате реализуется выбор из нескольких возможностей . Конструкция выбора используется в программировании очень часто. Пример: дана вещественная переменная x , требуется записать в вещественную переменную y значение функции sign(x) .

Любой сценарий PHP сформирован из ряда конструкций. Конструкциями могут быть операторы, функции, циклы. Конструкции обычно заканчиваются точкой с запятой. Кроме того, конструкции могут быть сгруппированы в группу, формируя группу конструкций с фигурными скобками {…}. Группа конструкций – это также отдельная конструкция.

Сегодня я кратко расскажу об основных конструкциях PHP. Приступим:

Условные операторы:

Условные операторы являются наиболее распространенными конструкциями во всех алгоритмических языках программирования.

1. Конструкция if

if (логическое выражение)
оператор;
?>

Конструкция if содержит логическое выражение. Если логическое выражение истинно (true), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false), то следующий за if оператор исполнен не будет. Приведем пример:

if ($a > $b ) echo "значение a больше, чем b" ;
?>

2. Конструкция else

Часто возникает потребность исполнения операторов не только в теле конструкции if, но и в случае, если условие конструкции if не выполнено. В данной ситуации нельзя обойтись без конструкции else. Такая конструкция будет называться if-else.

if (логическое_выражение)
инструкция_1;
else
инструкция_2;
?>

Если логическое_выражение истинно, то выполняется
инструкция_1, а иначе - инструкция_2. Как и в любом другом языке, конструкция else может опускаться, в этом случае при получении должного значения просто ничего не делается. Пример:

if ($a > $b ) {
echo "a больше, чем b" ;
} else {
echo "a НЕ больше, чем b" ;
}
?>

Конструкция if-else.

Обратите внимание на расположение двоеточия (:)! Если его пропустить, будет сгенерировано сообщение об ошибке.

if (логическое_выражение):
команды;
elseif(другое_логическое_выражение):
другие_команды;
else:
иначе_команды;
endif
?>

3. Конструкция elseif

elseif – это комбинация конструкций if и else. Эта конструкция расширяет условную конструкцию if-else.

if (логическое_выражение_1)
оператор_1;
elseif (логическое_выражение_2)
оператор_2;
else
оператор_3;
?>

Практический пример использования конструкции elseif:

if ($a > $b ) {
echo "a больше, чем b" ;
} elseif ($a == $b ) {
echo "a равен b" ;
} else {
echo "a меньше, чем b" ;
}
?>

Управляющие конструкции

Циклы:

Циклы позволяют повторять определенное (и даже неопределенное – когда работа цикла зависит от условия) количество раз различные операторы. Данные операторы называются телом цикла. Проход цикла называется итерацией.

1. Цикл с предусловием while

Цикл с предусловием while работает по принципам:

  • Вычисляется значение логического выражения.
  • Если значение истинно, выполняется тело цикла, в противном случае – переходим на следующий за циклом оператор.

while (логическое_выражение)
инструкция;
?>

В данном случае телом цикла является инструкция. Обычно тело цикла состоит из большого числа операторов. Пример цикла с предусловием while:

$ x = 0 ;
while ($ x ++< 10 ) echo $ x ;
// Выводит 12345678910
?>

2. Цикл с постусловием do while

В отличие от цикла while, этот цикл проверяет значение выражения не до, а после каждого прохода. Таким образом, тело цикла выполняется хотя бы один раз.

do
{
тело_цикла;
}
while (логическое_выражение);
?>

После очередной итерации проверяется, истинно ли логическое_выражение, и, если это так, управление передается вновь на начало цикла, в противном случае цикл обрывается. Пример скрипта:

$x = 1 ;
do {
echo $x ;
} while ($x ++< 10 );
?>

3. Цикл со счетчиком for

Цикл со счетчиком используется для выполнения тела цикла определенное число раз. С помощью цикла for можно (и нужно) создавать конструкции, которые будут выполнять действия не такие, как простая переборка значения счетчика.

for (инициализирующие_команды; условие_цикла; команды_после_итерации) { тело_цикла; }
?>

Цикл for начинает свою работу с выполнения инициализирующих_команд. Данные команды выполняются только один раз.

После этого проверяется условие_цикла, если оно истинно (true), то выполняется тело_цикла. После того, как будет выполнен последний оператор тела, выполняются команды_после_итерации. Затем снова проверяется условие_цикла. Если оно истинно (true), выполняется тело_цикла и команды_после_итерации.

for ($ x = 0 ; $ x < 10 ; $ x ++) echo $ x ;
//Выведит 0123456789

?>

Для цикла for имеется и альтернативный синтаксис:

for(инициализирующие_команды; условие_цикла; команды_после_итерации):
операторы;
endfor;
?>

4. Цикл перебора массивов foreach

foreach (массив as $ключ=>$значение)
команды;
?>

Команды циклически выполняются для каждого элемента массива, при этом очередная пара ключ=>значение оказывается в переменных $ключ и $значение. Пример работы цикла foreach:

$ names [ "Иванов" ] = "Андрей" ;
$ names [ "Петров" ] = "Борис" ;
$ names [ "Волков" ] = "Сергей" ;
$ names [ "Макаров" ] = "Федор" ;
foreach ($ names as $ key => $ value ) {
echo "$value $key
" ;
}
?>

Рассмотренный сценарий выводит:

Андрей Иванов
Борис Петров
Сергей Волков
Федор Макаров

У цикла foreach имеется и другая форма записи, которую следует применять, когда нас не интересует значение ключа очередного элемента.

foreach (массив as $значение)
команды;
?>

Цикл foreach оперирует не исходным массивом, а его копией. Это означает, что любые изменения, которые вносятся в массив, не могут быть “видны” из тела цикла. Что позволяет в качестве массива использовать не только переменную, но и результат работы какой-нибудь функции, возвращающей массив (в этом случае функция будет вызвана всего один раз – до начала цикла, а затем работа будет производиться с копией возвращенного значения).

5. Конструкция break

Очень часто для того, чтобы упростить логику сложного цикла, удобно иметь возможность его прервать в ходе очередной итерации. Для этого и существует конструкция break, которая осуществляет немедленный выход из цикла.

Она может задаваться с одним необязательным параметром – числом, которое указывает, из какого вложенного цикла должен быть произведен выход. По умолчанию используется 1, т. е. выход из текущего цикла, но иногда применяются и другие значения.

break; // По умолчанию
break(номер_цикла); // Для вложенных циклов (указывается номер прерываемого цикла)
?>

$ x = 0 ;
while ($ x ++< 10 ) {
if ($ x == 3 ) break;
echo "Итерация $x
"
;
}
// Когда $x равен 3, цикл прерывается
?>

Цикл выведет:

Итерация 1
Итерация 2

Если нам нужно прервать работу определенного (вложенного) цикла, то нужно передать конструкции break параметр – номер_цикла, например, break(1). Нумерация циклов выглядит так:

for (...) // Третий цикл
{
for (...) // Второй цикл
{
for (...) // Первый цикл
{
}
}
}

6. Конструкция continue

Конструкция continue так же, как и break, работает только “в паре” с циклическими конструкциями. Она немедленно завершает текущую итерацию цикла и переходит к новой (конечно, если выполняется условие цикла для цикла с предусловием). Точно так же, как и для break, для continue можно указать уровень вложенности цикла, который будет продолжен по возврату управления.

В основном continue позволяет вам сэкономить количество фигурных скобок в коде и увеличить его удобочитаемость. Это чаще всего бывает нужно в циклах-фильтрах, когда требуется перебрать некоторое количество объектов и выбрать из них только те, которые удовлетворяют определенным условиям.

$ x = 0 ;
while ($ x ++< 5 ) {
if ($ x == 3 ) continue;
echo "Итерация $x
"
;
}
// Цикл прервется только на третьей итерации
?>

Cкрипт выведет:

Итерация 1
Итерация 2
Итерация 4
Итерация 5

Конструкция выбора:

switch-case

Часто вместо нескольких расположенных подряд инструкций if-else целесообразно воспользоваться специальной конструкцией выбора switch-case. Данная конструкция предназначена для выбора действий, в зависимости от значения указанного выражения.

Конструкция switch-case чем-то напоминает конструкцию if-else. Конструкцию выбора можно использовать, если предполагаемых вариантов много, например, более 5, и для каждого варианта нужно выполнить специфические действия.

switch(выражение) {
case значение1: команды1;
case значение2: команды2;
. . .
case значениеN: командыN;
]
}
?>

Принцип работы конструкции switch-case такой:

  • Вычисляется значение выражения;
  • Просматривается набор значений. Пусть значение1 равно значению выражения, вычисленного на первом шаге. Если не указана конструкция break, то будут выполнены команды i, i+1, i+2, … , N. В противном случае будет выполнена только команда с номером i.
  • Если ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан.

Пример использования конструкции switch-case:

$ x = 1 ;
// Используем if-else
if ($ x == 0 ) {
echo "x=0
" ;
} elseif ($ x == 1 ) {
echo "x=1
" ;
} elseif ($ x == 2 ) {
echo "x=2
" ;
}
// Используем switch-case
switch ($ x ) {
case 0 :
echo "x=0
" ;
break;
case 1 :
echo "x=1
" ;
break;
case 2 :
echo "x=2
" ;
break;
}
?>

Рассмотренный сценарий выводит x=1 дважды.

Конструкция возврата значений:

return

Конструкция return возвращает значения, преимущественно из пользовательских функций, как параметры функционального запроса. При вызове return исполнение пользовательской функции прерывается, а конструкция return возвращает определенные значения.
Если конструкция return будет вызвана из глобальной области определения (вне пользовательских функций), то скрипт также завершит свою работу, а return также возвратит определенные значения.

Пример использования конструкции return для возврата значений типа integer:

function retfunct ()
{
return 7 ;
}
echo retfunct (); // выводит "7".
?>

Пример возврата конструкцией return массивов:

function numbers ()
{
return array (0 , 1 , 2 );
}
list ($ zero , $ one , $ two ) = numbers ();
echo $ zero ;
echo $ one ;
echo $ two ;
// Выводит "012"
?>

Конструкции включений:

Конструкции включений позволяют собирать PHP программу (скрипт) из нескольких отдельных файлов. В PHP существуют две основные конструкции включений: require и include.

1. require()

Конструкция require позволяет включать код до выполнения сценария.

require имя_файла;

При запуске программы интерпретатор заменит инструкцию на содержимое файла имя_файла (этот файл может также содержать сценарий на PHP).

2. include

Конструкция include также предназначена для включения файлов в код сценария PHP. В отличие от конструкции require конструкция include позволяет включать файлы в код PHP скрипта во время выполнения сценария.

include имя_файла;

3. require_once и include_once

Используя конструкции однократного включения require_once и include_once, можно быть уверенным, что один файл не будет включен дважды. Работают конструкции require_once и include_once так же, как и requre и include. Разница в их работе лишь в том, что перед включением файла интерпрететор проверяет, включен ли указанный файл ранее или нет. Если да, то файл не будет включен вновь.

Министерство образования Российской федерации

Якутский государственный университет

Институт математики и информатики

Кафедра информационных технологий

Основные управляющие конструкции

Якутск 2011

1. Построение программ 5

1.1. Алфавит языка 5

1.2. Имена и зарезервированные слова 5

1.3. Общая структура программ 6

1.4. Комментарии 6

1.5. Константы и переменные 6

1.6. Оператор простого присваивания 7

1.7. Операторы ввода и вывода данных 8

Если за символом процента (%) следует символ, который не является символом управления форматом, этот символ и все следующие символы рассматриваются как обычная последовательность символов, т.е. последовательность символов, которая должна совпадать с вводом. 10

2. Базовые стандартные типы 11

2.1. Целый тип данных 11

2.2. Вещественный тип 12

2.3. Стандартные математические функции 12

RAND_MAX=32677. 13

3. Программы линейной структуры 14

3.1. Арифметические выражения 14

3.2. Примеры программ линейной структуры 14

4. Программы с ветвлением 18

4.1. Логический тип данных 18

4.2. Логическое выражение 18

4.3. Условный оператор 19

4.4. Оператор выбора 24

5. Программы циклической структуры 26

5.1. Оператор цикла с предусловием while 26

5.2. Оператор цикла с постусловием do .. while 27

5.3. Оператор цикла с параметром for 28

4.4. Оператор перехода 30

5.4. Операторы передачи управления 30

5.5. Вложенные циклы 31

5.6. Вычисление сумм 31

Практикум на ЭВМ 35

Линейные алгоритмы 35

1. Задания для решения на компьютере 35

2. Задания для самостоятельной работы 35

Алгоритмы с ветвлением 39

1. Задания для решения на компьютере 39

2. Задания для самостоятельной работы 40

Программы с циклами 45

1. Задания для решения на компьютере 45

2. Задания для самостоятельной работы 45

Приложение 50

Основные операции языка С++ 50

1. Построение программ

1.1. Алфавит языка

Как и любой язык программирования, C/C++ имеет свой алфавит – набор символов, разрешенных к использованию и воспринимаемых компилятором. В алфавит языка входят:

    Латинские строчные и прописные буквы:

A, B, C,…, Z и a, b, c,…,z.

    Цифры от 0 до 9.

    Специальные символы, участвующие в построении конструкций языка:

+ - * / = < > . , () : ; ^ @ { } $ # ‘ ? % !

1.2. Имена и зарезервированные слова

Текст программы записывается при помощи латинских букв, цифр и знаков. Буквы допускаются прописные и строчные. Особую роль в тексте программы имеют имена и зарезервированные слова.

Имена применяют для обозначения переменных, констант и других объектов, определенных в программе. Имя может состоять из любого количества букв или цифр, но должно начинаться с буквы. В имя можно включать знак подчеркивания. Прописные и строчные буквы различаются. Программу легче понять, если имена подбираются так, чтобы в них отражался смысл обозначаемых данных. Например, сумму чисел обозначают через S или summa, максимальное значение max и т.п.

C/C++ имеет большое количество зарезервированных (ключевых) слов. Эти слова не могут быть использованы в качестве идентификаторов (имен) в программе.

Список ключевых слов таков:

reinterpret_cast

s1.indexOf(subS)

индекс позиции, где в строке s1 впервые

встретилась последовательность subS

индекс позиции, где в строке s1 в

s1.lastindexOf(subS)

последний

встретилась

последовательность subS

возвращает true в случае, когда

последовательностью

символов,

последовательностью

символов,

то же, но при сравнении строк

s1.equalsIgnoreCase(subS)

игнорируются

различия

в регистре

символов (строчные и заглавные буквы

не различаются)

возвращает строку на основе строки s1 ,

s1.replaceFirst(oldSubS,n

в которой произведена замена первого

вхождения символов строки oldSubS на

символы строки newSubS

Помимо указанных методов, в классе String есть еще и другие методы, с помощью которых можно производить со строками довольно сложные операции. Для более подробного изучения строкового класса воспользуйтесь документацией и справочной системой по классам Java.

В заключении отметим, что в Java имеется класс StringBuffer , который имеет большое число методов по сложной обработке строк.

2.9. Управляющие конструкции

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

2.9.1. Составной оператор

В программе, часто необходимо выполнить не один оператор а последовательность из нескольких операторов. Как правило, цельные последовательности операторов объединяют группы с помощью фигурных скобок {} .

Составной оператор - последовательность операторов Pi заключенная в фигурные скобки.

{P1; P2; P3; ...Pn}

В конце составного оператора не следует специально ставить символ “;” , как это делается для остальных операторов.

2.9.2. Условный оператор if

В общем виде условный оператор if-else может быть представлен в следующем виде:

if (condition) { } else {

Оператор задается с помощью ключевого слово if , сondition – условие, логическая переменная или константа типа boolean. Также в качестве условия может использоваться вычисляемое выражение, возвращающее значение типа boolean , например (x+5>y) . В случае, если условие имеет значение true , выполняется блок находящийся после условия, если значение false , то блок, идущий за ключевым словом else .

Если в блок входит только один оператор, ставить фигурные скобки не обязательно, однако это рекомендуется делать для обеспечения лучшей читаемости кода.

Блок else является необязательным, и может отсутствовать. Пример.

x*y; В данном случае подразумевается, что переменные x и y имеют тип boolean и в качестве условия используется вычисляемое выражение «исключающее или». Операция x*y будет выполнена только в том случае, если x и y имеют различные значения (одна переменная имеет значение true , другая – false или наоборот), в противном случае ничего не произойдет.

Запись фрагмента в виде

if (условие) операция1; операция2;

операция3;

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

Операция2 , будет выполняется при любом значении условия, т.к. не относится к условному оператору. Встретив далее ключевое слово, else компилятор сообщит об ошибке, т.к. предыдущий условный оператор закончился, а новый не начинался. В данном случае

необходимо операцию1 и операцию2 объединить с помощью фигурных скобок:

if (условие) { операция1; операция2;

} else операция3;

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

Несколько сложнее случай, когда вы забудите выделить нужный блок в части else , как это рассмотрено в примере.

if (условие) операция1;

else операция2;

операция3;

Компилятор не найдет синтаксической ошибки, хотя по условию требуется выполнить в блоке else операцию2 и операцию3. Поскольку блок else не содержит фигурных скобок то значит он состоит только из одного оператора (операция2) , а операция3 не входит в этот блок и будет выполнена как очередной оператор.

2.9.3. Оператор выбора

Оператор выбора switch применяется если требуется выбрвть из набора вариантов, в зависимости от значения определенной значения, которое примет выражение.

Можно организовать данный выбор несколькими операторами if , помещая каждый последующий в блок else предыдущего, или просто подряд, друг за другом. Однако данное решение является неграмотным, хотя и работает.

Для выполнения операции выбора в Java, используется оператор switch , имеющий следующий синтаксис:

switch (выражение) { case значение1:

оператор;

case значение2: оператор; оператор;

case значениеn: оператор;

…………………

оператор;

оператор;

В качестве выражения может использоваться первичное выражение (переменная, константа, литерал) или вычисляемое выражение. Ключевое слово case , записывается для каждого из вариантов выбора. После каждого слова case указывается конкретное значение, литерал, который должен соответствовать типу выражения. Далее ставится двоеточие, после которого следует один или несколько операторов. Наборы операторов отделяются друг от друга оператором

break.

Забыв написать команду break , мы сталкивается с «провалом» в переборе, если нет команды break , последующие case операторы игнорируются, и происходит выполнение всех операторов, начиная с case , для которого выполнилось условие.

Если не один из случаев не соответствует значению выражения то выполняется группа операторов после ключевого слова default . Это параметр не является обязательным в программе поэтому может отсутствовать. Тогда не будет выполнено никакое действие и управление будет передано следующему оператору программы.

import javax.swing.JOptionPane; public class Ocenka {

public static void main(String args) { String vvod;

vvod = JOptionPane.showInputDialog ("Введите цифру от 1 до 5");

otm = Byte.parseByte (vvod); switch (otm) {

case 1: JOptionPane.showMessageDialog (null , "Единица"); break ; case 2: JOptionPane.showMessageDialog (null , "Двойка"); break ; case 3: JOptionPane.showMessageDialog (null , "Тройка"); break ; case 4: JOptionPane.showMessageDialog (null , "Четверка"); break ; case 5: JOptionPane.showMessageDialog (null , "Пятерка"); break ;

System.exit (0);

2.9.4. Операторы цикла

Циклами называют конструкции, используемые для многократного повторения некоторого набора команд. Управление циклом осуществляется с помощью целой или вещественной переменной, называемой параметром цикла. Значение параметра цикла может использоваться в вычислениях и при определении условия конца цикла.

Цикл можно разделить на четыре части: инициализацию, тело цикла, условие, итерацию.

Инициализация это набор значений параметров которые необходимо присвоить в начале цикла. Тело цикла состоит из набора операторов которые будут многократно выполняться в процессе выполнения цикла. Условие это логическое значение, которое проверяется после или перед выполнением тела цикла, в зависимости от его выполнения принимается решение о следующем шаге выполнения цикла. Итерация представляет собой шаг работы цикла, или однократное выполнения тела цикла, обычно контролируется параметром цикла.

Оператор while

Оператор while является основным оператором для выполнения повторяющихся действий в Java.

Синтаксис оператора while с предусловием:

[инициализация] while (условие) { тело цикла;

В блоке (условие) указывается условие выполнения цикла, которое обычно вычисляется в программе. Если условие равно true , то начинают выполняться операторы входящие в тело цикла. Далее опять проверяется условие, и если оно истинно то процесс выполнения продолжается. Если условие окажется false то тело цикла будет пропущено интерпретатором Java, и управление будет передано следующему оператору. Произойдет выход из цикла.

Рассмотрим пример:

int a = new int; int i = 0;

while (a[i]<5){ a[i]+=1;

System.out .print(a[i]+" "); if (i==5) i=0;

В данном примере все элементы массива a постепенно увеличиваются на 1 и выводятся на консоль.

Оператор while с предусловием сначала проверяет истинность выражения condition , а затем выполняет тело цикла.

Оператор do

Синтаксис оператора while с постусловием:

while (condition);

Оператор while с постусловием сначала выполняет тело цикла, а затем проверяет истинность выражения condition .

В случае цикла с постусловием, тело цикла выполнится хотя бы один раз при любом значении условия.

Оператор for

Оператор цикла for работает заданное количество раз, имеет следующий синтаксис:

for (инициализация; условие; приращение) { тело цикла;

Оператор for используется для повторения тела цикла счетное число определяемое значением параметра цикла из заданного диапазона. Как только, параметр цикла выйдет за границы определенного диапазона значений, выполнение цикла завершится.

import javax.swing.JOptionPane;

public class ForEx {

public static void main(String args) {

int i;

iter = JOptionPane.showInputDialog ("Введите параметр

i=Integer.parseInt (iter);

for (int j=0;j

JOptionPane.showMessageDialog (null , "Это "+(j+1)+"й шаг

Цикл for применяется для перебора элементов из некоторого

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

Поэтому если пропустить, какое либо из них, напимер инициализацию или приращение, то они то соответствующая часть цикла не будет выполняться. Если пропустить условие то ему автоматически будет присвоино значение true.

Отметим еще одну особенность оператора for, внутри заголовка можно описать переменную, которая будет действовать в пределах этого оператора.

public static void main(String args) { for (int i=1; i<=10; i++) {

System.out .print(i+" ");

Плитка