Новости

C ++. Цикли. Оператори циклу for, while, do ... while

  1. зміст 1. Поняття циклу в мові програмування
  2. 2. Види операторів циклу в мові C ++
  3. 3. Цикл for. Загальна форма оператора циклу for
  4. 4. Приклади використання оператора циклу for
  5. 5. Які існують варіанти реалізації циклу for?
  6. 6. Цикл while. Загальна форма
  7. 7. Приклади використання оператора циклу while
  8. 8. Загальна форма оператора циклу do ... while
  9. 9. Приклади використання оператора циклу do ... while
  10. 10. Вкладені цикли. приклади використання
  11. 11. Що таке нескінченний цикл?
  12. пов'язані теми

зміст

1. Поняття циклу в мові програмування

Часто, програмуючи, потрібно, щоб одна і та ж послідовність команд виконувалася кілька разів. Такий процес називається циклічним. Алгоритм, в якому певна послідовність команд повторюється кілька разів з новими вхідними даними називається циклічним.

Для реалізації циклічного процесу, в мовах програмування застосовуються цикли. Мова програмування C / C ++ має в наявності зручні для роботи оператори циклу.

2. Види операторів циклу в мові C ++

У мові C ++ існує 3 види операторів циклу:

  • цикл for;
  • цикл while з передумовою;
  • цикл do ... while з умовою поста.

Кожен з операторів циклу має свої особливості застосування. Будь-який з вищенаведених операторів циклу може бути замінений іншим.

3. Цикл for. Загальна форма оператора циклу for

У мові C ++ цикл for може мати дуже широку реалізацію і застосування. Цикл for ще називається циклом з параметром.

Загальна форма оператора циклу for:

for (ініціалізація; вираз; приріст) {// послідовність операторів // ...}

де

  • ініціалізація - операція присвоювання, в якій встановлюється початкове значення змінної циклу. Ця змінна є лічильником, який керує роботою циклу. Кількість змінних, керуючих циклом for, може бути дві і більше;
  • вираз - умовний вираз, в якому перевіряється значення змінної циклу. На цьому етапі визначається подальше виконання циклу;
  • приріст - визначає, як буде змінюватися значення змінної циклу після кожної ітерації.

Цикл for виконується до тих пір, поки значення вираз дорівнює true. Як тільки значення вираз стане false, виконання циклу припиняється і виконується оператор, що слідує за циклом for.

4. Приклади використання оператора циклу for

Приклад 1. Знайти суму всіх цілих чисел від 100 до 300. Фрагмент коду, який вирішує це завдання.

// сума чисел від 100 до 300 int sum; int i; sum = 0; for (i = 100; i <= 300; i ++) sum = sum + i; // sum = 40200

Приклад 2. Дано натуральне число n. Обчислити суму:

Фрагмент коду, який вирішує це завдання Фрагмент коду, який вирішує це завдання.

// s = 1 + 1/2 + 1/3 + ... + 1 / n int n; float s = 0; int i; // введення значення n n = 4; for (i = 1; i <= n; i ++) s = s + 1.0 / i; // s = 2.08333

В даному прикладі, щоб отримати дійсне значення, замість числа 1 (цілий тип) вводиться число 1.0 (дійсний тип). операція ділення

1.0 / i

дає матеріальний результат.

Приклад 3. Обчислити суму

Фрагмент коду, який вирішує це завдання Фрагмент коду, який вирішує це завдання.

float s; int i; s = 0; for (i = 50; i> = 1; i--) s = i + Math :: Sqrt (s); s = Math :: Sqrt (s); // s = 1.7579

В даному прикладі значення лічильника i в циклі for змінюється по спадаючій. Це значення зменшується на 1 в кожній ітерації циклу. При вирішенні подібних завдань значення лічильника циклу має змінюватися від останнього до першого значенням. В даному випадку від 50 до 1.

В обчисленнях використана функція Sqrt () з бібліотеки Math.

5. Які існують варіанти реалізації циклу for?

Цикл for може мати кілька різновидів реалізації. Кількість змінних, керуючих циклом for може бути одна, дві і більше.

У циклі for може бути відсутнім будь-який з елементів заголовка циклу:

  • ініціалізація;
  • вираз;
  • приріст.

Приклад оператора циклу for, в якому є 2 керуючі змінні. Знайти значення твори:

D = (1 + cos (9)) · (2 + cos (8)) · ... · (9 + cos (1))

Фрагмент коду, який вирішує це завдання.

// D = (1 + cos (9)) * (2 + cos (8)) * ... * (9 + cos (1)) int i, j; float d; d = 1; for (i = 1, j = 9; i <= 9; i ++, j--) d = d * (i + Math :: Cos (j));

У наведеному вище фрагменті коду в циклі for використовуються дві змінні, які змінюють своє значення (i, j).

6. Цикл while. Загальна форма

Цикл while називається циклом з передумовою. Загальна форма циклу while наступна:

while (вираз) {// послідовність операторів // ...}

де вираз - будь-яке припустиме вираз в мові C ++. Послідовність операторів виконується до тих пір, поки умовний вираз повертає значення true. Як тільки вираз стає рівним false, виконання циклу while припиняється і управління передається наступному за циклом while оператору.

7. Приклади використання оператора циклу while

Приклад 1. Дано дійсне число a. Знайти таке найменше n, при якому

Міркування. На початку значення суми є менше ніж значення a. При проходженні кожної ітерації значення суми поступово збільшується. В якийсь момент (при якомусь значенні n) ця сума стане вище значення a. Цей момент (значення n) потрібно зафіксувати. Для обчислення n, зручно підходить цикл while.

Фрагмент коду, який вирішує це завдання.

float a; int n; float sum; // введення значення a a = 2.2; n = 1; sum = 1.0 / n; while (sum <a) {n ++; sum = sum + 1.0 / n; } // n = 5; sum = 2.283334

Приклад 2. Дано натуральне число. Визначити кількість цифр 3 в ньому.

Фрагмент коду, який вирішує це завдання.

// кількість цифр 3 в числі int n; // задане натуральне число int k; // кількість цифр 3 в числі int t, d; // додаткові змінні // введення значення n n = 12343; t = n; // робимо копію з n k = 0; while (t> 0) {d = t% 10; // виділити останню цифру if (d == 3) k ++; t = t / 10; // зменшити розрядність числа} // k = 2

В даному прикладі, значення вихідного числа буде ділитися на 10 при кожній ітерації. Таким чином, буде зменшуватися розрядність числа. На кожній ітерації, за допомогою операції% мови C ++ береться залишок від ділення на 10, тобто визначається остання цифра числа. Якщо ця цифра дорівнює 3, то лічильник k збільшується на 1.

8. Загальна форма оператора циклу do ... while

Цикл do ... while доцільно використовувати у випадках, коли ітерацію потрібно зробити хоча б 1 раз. На відміну від циклів for і while, в циклі do ... while умова перевіряється при виході з циклу (а не при вході в цикл). Цикл do ... while ще називається циклом з умовою поста.

Загальна форма оператора циклу do ... while:

do {// послідовність операторів // ...} while (вираз);

де вираз - умовний вираз, в якому перевіряється значення змінної циклу. На цьому етапі визначається подальше виконання циклу.

Фігурні дужки в цьому циклі необов'язкові.

Цикл працює наступним чином. Спочатку відбувається виконання тіла циклу. Потім перевіряється значення вираз (умовний вираз). Якщо значення вираз є істинним (true), виконується знову тіло циклу. Як тільки значення вираз стане false, виконання циклу припиняється

9. Приклади використання оператора циклу do ... while

Приклад. Використовуючи цикл do ... while, знайти значення суми:

S = 1 + 3 + ... + 99

Фрагмент коду, який вирішує це завдання.

// s = 1 + 3 + ... + 99 int t; int s; s = 0; t = 1; do {s = s + t; t = t + 2; } While (t <= 99); // s = 2500

10. Вкладені цикли. приклади використання

Вкладені цикли можуть бути використані, наприклад, при роботі з двовимірними (багатовимірними) масивами (обнулення масиву, обчислення сум, творів та інше).

Приклад 1. Обчислити твір

D = 1 · (1 + 2) · (1 + 2 + 3) · ... · (1 + 2 + ... + 9)

Фрагмент коду, який вирішує це завдання.

// D = 1 * (1 + 2) * (1 + 2 + 3) * ... * (1 + 2 + ... + 9) float d; // результат - твір int i, j; // лічильники циклів int s; // додаткова змінна d = 1; for (i = 1; i <= 9; i ++) {s = 0; for (j = 1; j <= i; j ++) s = s + j; d = d * s; } // d = 2.571912E + 09

В даному прикладі в циклі for з лічильником i виконується цикл for з лічильником j.

Приклад 2. Дан двовимірний масив цілих чисел розміром 6 × 9. Записати в усі елементи масиву значення 5.

int M [6] [9]; // двовимірний масив цілих чисел int i, j; for (i = 0; i <6; i ++) for (j = 0; j <9; j ++) M [i] [j] = 5;

11. Що таке нескінченний цикл?

Нескінченний цикл - це цикл, який ніколи не закінчується.

При програмуванні циклічних процесів, програміст помилково може написати код циклу, який ніколи не закінчується.

Крім того, іноді потрібно, щоб цикли містили код спеціального завершення за допомогою інструкції break.

Приклад 1. Нескінченний цикл з оператором for:

for (;;) {// послідовність операторів // ...}

Приклад 2. Нескінченний цикл while.

int x; x = 5; while (x <10) {// нескінченний цикл while, значення x не збільшується, // умова x <10 виконується завжди, неможливо вийти з циклу}

Вищенаведений фрагмент коду, з логічної точки зору, є помилковим. Такий цикл виконується без кінця. Так як значення змінної x не збільшується. Це означає, що x завжди буде менше 10.

пов'язані теми

5. Які існують варіанти реалізації циклу for?
11. Що таке нескінченний цикл?
5. Які існують варіанти реалізації циклу for?
11. Що таке нескінченний цикл?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: