КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Блок із 1-го або більш операторів}
while працює доти, поки вираз не буде дорівнює 0 (false). Якщо блок складається з 1-го оператора, фігурні дужки можна не ставити. Приклад 1. Програма запитує в користувача, продовжувати роботу по натиснутій клавіші або ні. При введенні символів 'y', 'Y', 'n', 'N' – відбувається вихід з циклу, інакше на екран виводиться відповідне повідомлення.
#include <iostream> using namespace std;
void main() { char ans; cout << "Продовжити (Y/N)?"; cin >> ans; while((ans!='Y')&&(ans!='y')&&(ans!='N') &&(ans!='n')) { cout << "\nНе правильно натиснута клавіша\n"; cout << "Продовжити (Y/N)?"; cin >> ans; } }
Приклад 2. Підрахувати кількість символів у слові.
#include <iostream> using namespace std;
void main() { char name[15]; int count = 0; cin >> name; while (name[count] != 0) count++; cout << count; }
Цикл може бути організований як цикл з післяумовою do … while Синтаксис:
Do { блок з одного або більш операторів; } while ( <вираз> );
Цикл має мінімум одну ітерацію. Цикл продовжується доти, поки вираз істинний, тобто не дорівнює 0 (false). Якщо блок складається з одного оператора, фігурні дужки можна не ставити. Приклад, аналогічний прикладу 1:
#include <iostream> using namespace std;
void main() { char ans; do { cout <<"\nБудете продовжувати введення ( Y/N )?"; cin >> ans; } while ((ans!='Y')&&(ans!='y')&&(ans!='N') &&(ans!='n')); }
У С++ передбачена можливість дострокового виходу з програми до її нормального завершення за допомогою функції exit(). Синтаксис: exit(status) -передається значення операційній системі через оточення errorlevel – може перевірятися в командних файлах. Як і в арифметичному циклі for, в циклах while, do…while мають місце оператор break для виходу з циклу та оператор continue для повернення на початок циклу.
Оператори switch та goto
Оператор switch замінює короткий оператор, що розгалужуєтьсяif… else Синтаксис:
switch ( вираз ) { case <конст_вираз 1>: блок операторів С++; case <конст_вираз 2>: блок операторів С++; ... case < конст_вираз n>: блок операторів С++; [default: блок операторів С++;] }
Після обчислення виразу в заголовку оператора, його результат послідовно порівнюється з константами-вираженнями <конст_вираз 1> ... <конст_вираз n> починаючи із самого верхнього, поки не буде встановлена їхня відповідність. Тоді виконуються оператори усередині відповідного case, і після цього управління переходить на такий константний вираз без перевірок. Саме тому наприкінці кожної послідовності операторів повинен бути присутнім оператор break, що забезпечує вихід з оператора switch. Гілка, яка має назву default (по умовчанню) може бути відсутня. Якщо вона є, то послідовність операторів, що знаходиться за словом default, виконується тільки тоді, коли порівняння з жодної зі стоячих вище константних виразів не є істинним. Приклад:
switch (t) { case 1: cout << "\nПовідомлення 1"; break; case 2: cout << "\nПовідомлення 2"; break; // ... default: cout << "\nЗрадливий код"; }
Якщо break не ставиться наприкінці блока операторів, і ми потрапляємо за умовою в блок, то здійснюється «провал донизу». Приклад:
switch (num) { case 1: cout << "1"; case 2: cout << "22"; case 3: cout << "333"; }
Якщо num дорівнює 1, то результат буде:
Без використання оператору break можуть бути оригінальні рішення.
Приклад: switch (num) { case 1: case 2: case 3: cout << "Номер від 1 до 3"; break; case 4: cout << "Номер 4"; break; default: cout << "Помилковий номер"; }
У загальному випадку <виразом> може бути будь-який вираз, константа або цілочисельна змінна. Константи-вираження – це константи цілочисельного типу. Оператор switch зручно використовувати при реалізації меню. Особливістю роботи з оператором switch є те, що в середині окремого блоку case не можна оголошувати змінні без використання фігурних дужок { }. Фігурні дужки визначають область видимості та існування окремої змінної. Тобто, для оголошення та використання змінної у блоці case необхідно взяти його у фігурні дужки. Приклад обчислення функції аргументу x від заданого типу t:
#include <iostream> using namespace std;
void main() { int t; double x; cout<<"Введіть значення аргументу x "; cin>>x; cout<<"Введіть значення типу функції 1 або 2 "; cin>>t; switch (t) { case 1: { double y = x*x; cout << "\ny = " <<y; break; } case 2: { double y = x*x*x; cout << "\ny = " <<y; break; } default: cout << "\nНевірно заданий тип функції"; } } Оператор goto рідко зустрічається, краще цим оператором не користуватися. Приклад використання:
goto tt; // Перехід на мітку tt. c= 12; ... tt: ...
Контрольні питання
1. Чим відрізняється арифметичний цикл від ітераційного? 2. Розкрийте сутність арифметичного циклу for. 3. Розкрийте сутність ітераційного циклу з передумовою while. 4. Розкрийте сутність ітераційного циклу з післяумовою do…while. 5. Розкрийте сутність призначення операторів switch та goto. 6. Для чого потрібні оператори break та continue? 7. Що таке “вічний цикл”? 8. Наведіть приклад арифметичного циклу for. 9. Наведіть приклад ітераційного циклу з передумовою while. 10. Наведіть приклад ітераційного циклу з післяумовою do…while.
|