Оператор циклу з передумовою while

Оператор циклу while називається циклом з передумовою і має наступний формат:
while (вираз) тіло;
В якості виразу допускається використовувати будь-який вираз мови Сі, а як тіла будь-який оператор, в тому числі порожній або складової. Схема виконання оператора while наступна:
1. Обчислюється вираз.
2. Якщо вираз помилково, то виконання оператора while закінчується і виконується наступний по порядку оператор. Якщо вираз істинний, то виконується тіло оператора while.
3. Процес повторюється з пункту 1.
Оператор циклу виду
for (вираз-1; вираз-2; вираз-3) тіло;
може бути замінений оператором while наступним чином:
вираз-1;
while (вираз-2)
{
тіло
вираз-3;
}
Так само як і при виконанні оператора for, в операторі while спочатку відбувається перевірка умови. Тому оператор while зручно використовувати в ситуаціях, коли тіло оператора не завжди потрібно виконувати.
Всередині операторів for і while можна використовувати локальні змінні, які повинні бути оголошені з визначенням відповідних типів.

Оператор циклу з постусловіем do - while

Оператор циклу do while називається оператором циклу з постусловіем і використовується в тих випадках, коли необхідно виконати тіло циклу хоча б один раз. Формат оператора має наступний вигляд:
do тіло while (вираз);
Схема виконання оператора do while:
1. Виконується тіло циклу (яке може бути складеним оператором).
2. Обчислюється вираз.
3. Якщо вираз помилково, то виконання оператора do while закінчується і виконується наступний по порядку оператор. Якщо вираз істинний, то виконання оператора триває з пункту 1.
Щоб перервати виконання циклу до того, як умова стане хибним, можна використовувати оператор break.
Оператори while і do while можуть бути вкладеними.
Приклад:
int i, j, k;
...
i = 0; j = 0; k = 0;
do {i + +;
j -;
while (a [k] <i) k + +;
}
while (i <30 & & j <-30);

Практичні завдання

Прибираємо оператор goto

Запишіть без оператора goto наступний фрагмент
m: if (A)
{
B;
goto m;
}

Спрощуємо логічні вираження

Перепишіть оператори умовного переходу так, щоб їх умови не містили логічних операцій.
if (A & & B | |! C)
D;
else if (B | | C)
E;
else
F;

Взаємозамінність циклів

Обчислити факторіал n! трьома способами за допомогою трьох видів циклу.

Компактний for

Запишіть подвійний цикл
for (int i = 0; i <5; i + +)
{
printf ("\ n");
for (int j = 0; j <4; j + +)
printf ("% 3d", i * j);
}
за допомогою одинарного циклу з тими ж лічильниками i, j.

Обходимося без операторів умовного переходу

Замініть оператор if (A) B; еквівалентним оператором циклу for.

Лабораторні завдання

Лінійне рівняння

Оператори if-else if, switch. Написати програму, яка вирішує лінійне рівняння a ∙ x + b = 0. Використовувати оператори if-else if. Логічні вирази в умовах цих операторів не повинні містити логічних операцій & & і | |. Передбачити чотири можливих результату при вирішенні рівняння:
- Немає рішення,
- Знайдено єдине рішення,
- Будь-яке число є рішенням,
- Рішення єдине, але не входить в діапазон типу змінної x.

У операторі if-else if визначити деяку змінну flag, яка приймає чотири значення, відповідних можливого результату рішення. Висновок текстової інформації з результатами вирішення організувати з використанням оператора switch, умова якого містить flag. Вихід з програми повинен бути єдиним.
Організувати перевірку коректності даних при введенні коефіцієнтів a і b.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: