Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 21-24.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
181.25 Кб
Скачать

Розгалуження

В С++ існує кілька типів розгалужень, найважливішим з яких є if...else, що здійснює вибір між двома альтернативами. В операторі розгалуження if...else використання else не є обов’язковим. Для вибора однієї з багатьох альтернатив використовується оператор розгалуження switch, дія якого визначається набором значень відповідної змінної. Крім того, існує так звана умовна операція. Ми розглянемо всі ці конструкції.

Умовний оператор if

Оператор if є найпростішим з операторів розгалуження. Далі приведена програма демонструє використання оператора if.

#include <iostream>

using namespace std;

int main()

{

int x;

cout<<”Vvvedit chyslo: “;

cin>>x;

if (x>100)

cout<<”x>100\n”;

return 0;

}

Після ключового слова if йде умова розгалуження, взята в круглі дужки.

Кілька операторів в тілі if

Як і для циклів, тіло розгалуження може складатися як з одного оператора, так і з багатьох операторів, включених в фігурні дужки. Далі приведений приклад такої програми.

#include <iostream>

using namespace std;

int main()

{

int x;

cout<<”Vvvedit chyslo: “;

cin>>x;

if (x>100)

{

cout<<”x>”;

cout<<”100\n”;

}

return 0;

}

If всередині циклів

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

#include <iostream>

using namespace std;

#include<process.h>

int main()

{

unsigned long n,j;

cout<<”Vvedit chyslo ”;

cin>>n;

for (j=2;j<=n/2;j++)

if (n%j==0)

{cout<<”Chyslo ne proste, dilytsa na ”<<j<<endl;

exit(0); //вихід з програми

}

cout<<”Chyslo proste\n”;

return 0;

}

Програма містить функцію exit(), яка здійснює вихід з програми незалежно від того, в якому місці вона знаходиться. Ця функція не повертає значення. Її єдиний аргумент (в даному випадку 0) повертається викликаючому оточенню після того, як програма завершується. Як правило, повернення значення 0 свідчить про успішне завершення програми, а ненульове значення свідчить про помилки

Звернемо увагу на те, що тіло циклу не включене в фігурні дужки. Це пояснюється тим, що оператор if і оператори тіла розгалуження насправді є одним оператором. Можна додати фігурні дужки, щоб покращити читабельність коду, але це не обов’язковим.

Оператор if...Else

Оператор if дозволяє здійснювати дію в тому випадку, коли виконується певна умова. Якщо ж умова не виконується, то не виконується жодна дія. Однак частіше трапляються такі ситуації, коли нам необхідно здійснювати одну дію у випадку виконання умови та іншу дію у випадку її невиконання. Тоді виявляється корисним розгалуження if...else. Далі показаний його синтаксис

if (умова) statement; else statement;

if (умова)

{statement1;

...

statement n;

}

else

{statemente1;

...

statemente n;

}

Змінимо одну з попередніх програм, додавши до розгалуження esle-частину.

#include <iostream>

using namespace std;

int main()

{

int x;

cout<<”Vvvedit chyslo: “;

cin>>x;

if (x>100)

cout<<”x>100\n”;

else

cout<<”x<=100\n”;

return 0;

}