* Оператор if-else
Публикувано на 24 септември 2008 в раздел С/С++.
Операторът if-else се използва за логическо "раздвояване" на програмата в един или два логически "клона". Има следната граматика:
if (<условие>) { <блок от оператори> } else { <блок от оператори> }
Ако условието в кръглите скоби даде резултат различен от нула (TRUE), то ще се изпълни първият блок оператори. Ако условието е равно на нула (FALSE), то ще се изпълни блока оператори след else. Ясно, е че винаги ще се изпълни само един от блоковете оператори.
Възможно е след частта else да има празен оператор:
if (<условие>) { <блок от оператори> } else;
В такъв случай else; може да не се записва. Също така ако блока от оператори се състои от един единствен оператор, то може да пропускаме фигурните скоби:
if (<условие>) operator1; else operator2;
Условието може да бъде всеки допустим за езика израз. Логически обаче трябва да използваме изрази, които връщат булев резултат (0 или 1). Пример (въвеждаме две числа от клавиатурата и ги сравняваме):
int x, y; printf("Enter x: "); scanf("%d", &x); printf("Enter y: "); scanf("%d", &y); if (x > y) printf("X is bigger than Y"); else { if (x == y) printf("X and Y are equal"); else printf("Y is bigger than X"); }
Както се вижда от примера не е проблем да се използват и вложени структури.
Задача: Дадено е линейно уравнение a*x + b = 0. Съставете програма, която да решава това уравнение. Числата "a" и "b" да се въвеждат от клавиатурата.
Припомняне: Направете последователни сравнения за трите случая - (a = 0, b = 0), (a = 0, b != 0) и (a != 0).
Задача: Въведете дължините на три отсечки от клавиатурата. Проверете дали те могат да образуват триъгълник и ако да - изведете неговия периметър.
Припомняне: Отсечките трябва да са с положителна дължина и трябва да отговарят на условията (a + b > c), (a + c > b) и (b + c > a).
Добави коментар