Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mL_6_oper.doc
Скачиваний:
0
Добавлен:
29.04.2019
Размер:
219.65 Кб
Скачать

20

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

Операторы цикла задают многократное исполнение операторов тела цикла. Определены три разных оператора цикла:

  • цикл с предусловием:

 while (выражение_условие) 

 тело_цикла 

  • цикл с постусловием:

 do тело_цикла 

 while (выражение_условие);

  • итерационный цикл:

 for (инициализация_цикла; выражение_условие; список выражений) 

 тело_цикла 

Все операторы цикла содержат  тело_цикла  и  выражение_условие .

 Тело_цикла  – это отдельный оператор (в т.ч. и пустой), который заканчивается точкой с запятой, либо блок (составной оператор), который заключается в фигурные скобки.

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

Оператор while

Оператор  while это оператор с предусловием (пока условие истинно, повторять тело цикла).

 while (выражение_условие)

 тело_цикла 

При входе в цикл вычисляется  выражение_условие . Если его значение истина (не равно  0 ), то выполняется тело цикла. Затем снова вычисляется  выражение_условием  и т.д. Выполнение цикла повторяется до тех пор, пока значение  выражение_условие  не станет равным  0 .

Рис.6. – Блок-схема работы оператора с предусловием

Пример  2.8 . Вычисляем сумму четных чисел, пока сумма меньше 20.

#include <stdio.h>

Void main()

{int a=0,cout=0,

int sum=0;

while(sum<20)

{cout+=1; // 1 2 3 4 – количество четных чисел

a+=2; // 2 4 6 8

sum+=a;} // 2 6 12 20 (0+2+4+6+8=20)

printf(“a=%d sum=%d cout=%d\n”,a,sum,cout);

}

На экране получим:  a=8 sum=20 cout=4 

Пример  2.9 . Вычисляем сумму чисел, кратных 5.

#include <stdio.h>

void main()

{int i=0, S_5=0;

while(i<5)

{printf(“i=%d\n”,i++); // 0 1 2 3 4

S_5+=5*i; // 5 15 30 50 75 (5+10+15+20+25=75)

}

printf(“i=%d S_5=%d\n”,i,S5);

}

На экране получим:  i=5 S_5=75 

Пример  2.10 ..

#include <stdio.h>

void main( )

{int i=0;

while (i++,i<3) printf(“Привет ”); // цикл выполнится 2 раза

}

На экране получим:  Привет Привет 

Пример  2.11 ..

#include <stdio.h>

void main( )

{int i=0;

while (i<3,i++)

printf(“Привет ”); //цикл выполнится ни разу (i сначала проверяется, а потом +1)

}

На экране ничего не выведется.

Пример  2.12 ..

#include <stdio.h>

void main( )

{int i=0;

while (i<3,++i)

printf(“Привет ”); //цикл выполнится 65535 раз (i=і+1, а потом i проверяется).

}

На экране получим:  Привет Привет Привет Привет Привет...Привет Привет Привет 

Внутри цикла могут стоять операторы  continue ,  break ,  return .

Оператор  continue  заставляет пропустить остаток тела цикла и перейти к следующей итерации (повторению тела цикла сначала).

Оператор  break  завершит выполнение цикла.

Оператор  return  завершит выполнение всей программы.

Пример  2.13 .  Находим сумму первых четырех нечетных чисел, которые вводятся с клавиатуры, а также подсчитываем число четных и нечетных вводимых чисел.

#include <stdio.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]