Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Блок із 1-го або більш операторів




Читайте также:
  1. Більш повну практику ціноутворення в сучасних умовах у розвинутих країнах світу допоможе з’ясувати короткий виклад розвитку теорії ціни.
  2. Більша терит. – більше людей – більше бюрократії
  3. Більшовицький режим.
  4. Визначаємо індекс середньорічної продуктивності праці за рахунок збільшення питомої ваги робітників у структурі
  5. Дільники і кратні. Спільні дільники і спільні кратні. Найбільший спільний дільник (НСД) і найменше спільне кратне (НСК), їх властивості.
  6. Економічне зростання - це довгострокова тенденція збільшення реального ВВП.
  7. Загальна тенденція динаміки технологічної структури ОФ характеризується поступовим збільшенням їх активної частини.
  8. І)7) Найбільше і найменше значення ф-ції на замкненій області.
  9. Найбільші канали України

}

 

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.

 


Дата добавления: 2014-12-30; просмотров: 21; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2022 год. (0.015 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты