Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
31.01.2021
Размер:
10.32 Кб
Скачать

Інформатика — Теорія — Оператор розгалуження if    Автори

|

Контакти

|

Підсистема допомоги

|

Методичні вказівки

|

Анотація

|

Назад

   ІнформатикаОператори вибору : Оператор розгалуження ifЗміст курсу

Теорія

Оператор розгалуження if

Оператор switch

Поточна перевірка знань

Оператори розгалуження

Версія для друку

  Оператор розгалуження if      Оператор розгалуження, або умовний оператор, призначений для виконання тих або інших дій в залежності від істинності або хибності деякої умови. Основний оператор цього блоку в С - if ... else не має ключового слова then, як у Паскалі, проте обов'язково вимагає, щоб умова, що перевіряється, розміщувалася б у круглих дужках. Оператор, що слідує за логічним виразом, є then- частиною оператору if...else.Синтаксис оператора :if (<умова>) <оператор1>; [else <оператор2;>] .

     Умова хибна, якщо вона дорівнює нулю, в інших випадках вона істинна. Це означає, що навіть від'ємні значення розглядаються як істинні. До того ж, умова, що перевіряється, повинна бути скалярною, тобто зводитися до простого значення, яке можливо перевірити на рівність нулю. Взагалі не рекомендується використання змінних типу float або double в логічних виразах перевірки умов з причини недостатньої точності подібних виразів. Більш досвідчені програмісти скорочують оператори типу:if (вираз!=0) оператор;до наступного: if (вираз) оператор;.     Обидва логічні вирази функціонально еквівалентні, тому що будь-яке ненульове значення розцінюється як істина.

Приклад 1. Програма виводить результат ділення двох дійсних чисел. #include<iostream.h>void main(){     float a,b,c;     cout<<"Input a :\n";     cin>>a;     cout<<"Iput b :\n";     cin>>b;     if (b==0)

          cout<<"Dividing by 0! \n";     else     {

          c=a/b;           cout<<"a : b == "<<c<<"\n";     }}

Якщо змінна b дорівнює нулю, на екрані буде повідомлення "Dividing by 0! ".Якщо змінна b не дорівнює нулю, на екран буде виведено результат ділення а на b.

Приклад 2. Застосування умовного розгалужування.#include <iostream.h>int main(){

     int number;     int ok;     cout<<"Input number 1..100 : ";     cin>>number;     ok=(1<=number) && (number<=100);     if (!ok)          cout<<"Error!! \n";     return ok;}

Змінній ok присвоюється значення результату виразу: ненульове значення, якщо істина, і в протилежному випадку - нуль. Умовний оператор if(!ok) перевіряє, якщо ok дорівнюватиме нулю, то !ok дасть позитивний результат й відтоді буде отримано повідомлення про некоректність, виходячи з контексту наведеного прикладу.

     Умовні оператори можуть бути вкладеними, тобто і <оператор1>, і <оператор2;> можуть бути умовними, як з гілкою else, так і без неї. При вкладеності умовних операторів існує правило: else належить найближчому до нього попередньому if.

Приклад 3. Викорм\истання вкладених операторів if/

int main ( )

{

     int t=2, b=7, r=3;

     if (t>b)

     {

          f (b < r) r=b;

     }

     else r=t;

     cout<"r="<<r;

}

На екрані отримаємо " r=2 ".

Якщо в програмі опустити фігурні дужки, що стоять після оператора if, то програма буде мати наступний вигляд:

int main ( )

{

     int t=2,b=7,r=3;

     if ( t>b )

          if ( b < r ) r=b;

          else r=t;

     cout<"r="<<r;

}

В цьому випадку на екрані отримаємо "r=3", так як ключеве слово else відноситься до другого оператора if, який не виконується, оскільки не виконується умова, що переверяється в першому операторі if.

 © 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS

Соседние файлы в папке content