Базовий курс програмування на С++. Урок 7. Цикли в C++. Оператори continue та break. |
Написав Joker | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Неділя, 18 січня 2015 19:23 Переглядів: 58075
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ідеальний код - код який не потребує коментування, а так як ідеального нічого не існує, то - коментарі мають допомагати зрозуміти логіку коду написаного.
Сьогодні ми розглянемо: 1. Поняття циклу 2. Види циклів 2.1. Whilesum+=digit; 2.2. Do while 2.3. Цикл for 3. Ключові слова. Оператори continue та break Приклади Обов’язкове д/з
Поняття циклу Досить часто бувають такі випадки, що ми змушені виконувати одну і ту ж дію декілька разів. Програми і програмний код не є винятком з цього правила. Нам може бути потрібно заповнити десять змінних. Для цього нам потрібно 10 разів повторити команду cin. Так, 10 разів скопіювати одне і те саме займе не більше хвилини вашого дорогоцінного часу. Але, якщо цю дію нам доведеться повторювати 100 або і 1000 разів, це може відбити бажання програмувати взагалі. Але на щастя, лінь – двигун прогресу. Тепер ближче до діла. Нехай ви спортсмен і хочете пробігти стільки кіл навколо стадіону, на скільки у вас вистачить сили. Але ваше хобі програмувати і ви вирішили скласти для цього алгоритм. Алгоритм виглядає так: 1) Опинитися на лінії старту/фінішу. 2) Пробігти коло 3) Опинитися на лінії старту/фінішу 4) Якщо ще залишилися сили, повторити пункт 2 5) Закінчити біг Звернуть увагу на пункт 4, без нього циклу не буде. Доки є цей пункт істинний цикл буде працювати і повторювати пункти 1-3. Програма завершить свою роботу тільки після того, як пункт 4 буде рівний false. Цикл — різновид керівної конструкції у високорівневих мовах програмування, призначена для організації багаторазового виконання набору інструкцій (команд). Також циклом може називатися будь-яка багатократно виконувана послідовність команд, організована будь-яким чином (наприклад, із допомогою умовного переходу). (матеріал взятий з вікіпедії http://uk.wikipedia.org/).
Види циклів Цикли С++: - while - do while - for
While Синтаксис:
Перевірка – вираз, якщо його значення дорівнює true, то виконується код прописаний у фігурних дужках (виконується крок циклу), якщо ж перевірка дорівнює false – цикл завершився і виконується код поза фігурними дужками, код_1 – пропускається. Якщо перевірка повернула істину і програма виконала код_1, далі знову виконується перевірка. Будь-який цикл закінчується перевіркою, а вона вже визначає який код виконувати. Блок-схема циклу while:
Спробуємо написати програму, яка виведе 15 разів фразу «Hello world». Хід, який буде повторюватися багато разів – вивід на екран фрази. Тепер нам потрібно якось перевіряти, коли і скільки разів виводити цю фразу. Для цього давайте заведемо змінну-лічильник, тобто вона буде рахувати скільки разів ми вже вивели, назвемо її count, і надамо значення 0. Тепер у нас додалася ще одна дія, яку ми будем часто повторювати – збільшувати значення лічильника на одиницю. І перевірку задамо таким чином, що будем перевіряти доки лічильник менший 15. Все, тепер програмуємо. Раджу спробувати реалізувати це самостійно, тут немає нічого складного.
Спробуйте реалізувати щось схоже. Для прикладу виведіть степені числа 2, до 15 (2^1, 2^2, 2^3 ...2^15).
Do while Загальний синтаксис:
Як ви вже замітили, ці два цикли дуже схожі. Єдина відмінність полягає в тому, що цикл while спершу здійснює перевірку. Тільки після того він вирішує, що робити. Цикл do while при любих обставинах виконається хоча б один раз. Програма дійшовши до слова do не буде нічого перевіряти, а зразу почне виконувати код прописаний у циклі, далі дійшовши до слова while, вона перевірить умову, якщо умова істинна – цикл повториться.
Цикл for Цей цикл є унікальним і використовується найчастіше. Як на мене він найзручніший з усіх вище описаних. Загальний синтаксис:
Тепер схема циклу for:
Давайте тепер щось напишемо. Завдання наступне: вивести числа від 1 до 10 включно за допомогою циклу for
Ви повинні були помітити, як ми створили змінну і зразу ж ініціалізували її, вказали умову перевірки і встановили правило за яким наша керуюча змінна (лічильник) змінюється з кожним кроком циклу. І все це у одному рядку. Давайте розглянемо його роботу на цьому ж прикладі. 1) і = 1; 1 <= 10 (true) cout << 1; i = 2; 2) i = 2; 2 <= 10 (true) cout << 2; i = 3; … 3) i = 11; 11 <= 10 (false) вихід із циклу кінець програми.
Ключові слова Ключові слова – це зарезервовані ідентифікатори, які використовуються для написання команд.
Ми вже знаємо про такі: double, int, else, long, switch, case, char, return (потребує додаткового вивчення, детальніше при вивченні рекурсії), const, float, short, unsigned, for, signed, default, do, if, while. Не мало, еге ж Зараз ми розглянемо ще два: break, continue.
Оператор break Інколи нам може знадобитися зупинити цикл, коли умова істинна. До речі, таким чином можна зупинити вічний цикл, перевірка умови якого – відсутня. Для цього використовується саме це ключове слово. Прописувати його потрібно у тілі циклу. Зустрівши його, програма без жодних перевірок і вагань припинить виконувати цикл і продовжить роботу поза ним. Давайте розглянемо це на прикладі. Нам потрібно вивести числа від 1 до 5. Ви можете подумати, що тут важкого і уявите такий код:
Добре, це правильно. Давайте додамо 2 додаткові умови:
Задумались? Наполегливо раджу постаратися зробити це власноруч. Якщо ж у вас не виходить, то дуже добре перегляньте мій код.
Break виконається тільки тоді, коли і буде рівне 5. Після цього цикл завершиться і операція cout не буде виконуватися. Break можна використовувати тільки у циклах (не обов’язково for) або конструкції switch.
Оператор continue Крім виходу з циклу, нам може знадобитися перехід на наступну ітерацію циклу (наступний крок циклу). Цю роботу виконує оператор continue. Його також можна використовувати у всіх видах циклів. Але його дії дещо відрізняються. У циклі while і do while зустрівши continue програма перейде до перевірки умови циклу. У циклі for спершу змінюється лічильник, а далі перевіряється умова. Давайте знову програмувати. Умова: вивести всі числа кратні 3 до 30 включно.
Якщо число не кратне 3, то виконається continue, і збільшиться на одиницю, перевірятиметься умова.
Задача на логіку: Якщо я зміню цей рядок if (i%3 != 0) на такий if (i%3) програма буде працювати?
Відповідь: Оператор if може повертати тільки значення true або false, в залежності від умови. true – будь-яке число крім 0. false – 0. Ось і відповідь, якщо i%3 буде рівне 0, тобто число кратне 3, тоді виконається вітка else (0 = false). І навпаки.
Приклади 1. Виведемо на екран 5 зірочок по горизонталі.
2. Суму всіх чисел в заданому діапазоні
3. Ви вводите з клавіатури послідовно будь-які цілі числа. Програма буде рахувати їх суму доки ви не введете 0. Якщо ви ввели 0, програма зупиниться і виведе суму всіх чисел, які ви ввели.
4. Програма, яка виводить всі числа, які є кратними до числа, яке ви ввели з клавіатури
Обов’язкове д/з - Написати програму, яка виводить лінію із символів.
Будь ласка, залишайте свої коментарі нижче, якщо у вас залишились питання.
( 18 Проголосувало ) Новіші матеріали:
Старіші матеріали:
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |