1-1 Программирование С++ / html / modules / 011 / content / content1
.htmlІнформатика — Теорія — Оператор розгалуження 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