Оператор if - проверка на логическо условие
Разклонен алгоритъм се реализира чрез логически оператор if: Приложение на оператор if - при проверка за изпълнение на просто или съставно условие. Нека припомним някои оператори за сравнение:
== логическо условие за равенство;!= логическо условие за неравенство;
|| логически оператор AND - при изпълнение на всички условия
! логически оператор NOT - отрицание
&& логически оператор OR - при изпълнение на поне едно условие
При проверка за изпълнение на дадено условие оператор if действа като логически оператор - резултатът може да бъде само 0 или 1. Операторът за проверка на логическо условие if име следния синтаксис: if (условие) {<съставен оператор при изпълнение >} else {<съставен оператор за останалите случаи>}. Частта ( условие ) включва проверка изпълнение на просто или съставно условие. В зависимост от конкретния алгоритъм в един оператор if може да се съдържа проверка за един тип релация: по-голямо, по-малко, равно, различно. При съставно условие в един оператор if са включени проверки за две или повече релации. Отделните условия в оператор if се свързват с логически оператори като OR, AND, NOT. Частта {< съставен оператор при изпълнение >} може да бъде празен, единичен или съставен оператор. При използване на оператор if е препоръчително заграждане във фигурни скоби на частта { съставен оператор при изпълнение }. Това допринася за подобряване прегледността на кода и намалява броя логически грешки при разклонение алгоритми - използващи оператор if. Ако операторът в else е празен оператор не е необходимо да се изписва. Нека разгледаме единствената триаргументна операция в C++. Операторът ? се нарича „троичен" (ternary), тъй като изисква три операнда. Той има следната обща форма: изр_1 ? изр_2 : изр_3
където изр_1, изр_2 и изр_3 са изрази. Обърнете внимание на употребата и местоположението на двоеточието. Стойността на израза ? се определя по следния начин. Оценява се изр_1. Ако той е верен, се изпълнява изр_2, който става стойност на целия израз ?. Ако изр_1 е неверен, тогава се изпълнява изр_3 и неговата стойност става такава на целия израз.В следващата програма редът: if (a>b ? (mas[i][0]=b, mas[i][1]=a ) : (mas[i][0]=a, mas[i][1]=b )); прави следното:
ако a>b (mas[i][0]=b, mas[i][1]=a ) в противен случай (mas[i][0]=a, mas[i][1]=b)
двойка числа - оператор if
Съществуват множество случаи, в които се изисква сравняване на въведени данни от един и същи тип. Да разгледаме следната примерна задача: Трябва да се въведат две естествени числа a,b и да се изведе вида релация. Възможни са три отделни случая: a < b; a = b; и a > b.
Следващата примерна програма извършва последователно провека на логическо условие по трите възможни релации чрез оператор if:
тернарен оператор if
Нека разгледаме малко по-усложене вариант на предходната задача. Имаме множество двойки естествени числа въведени в двумерен масив. Програмата трябва да изведе същите числа, но за всеки ред се извежда по-малкото от двете числа. Проверката за релация по-малко или равно се осъществява чрез цикъл с вложен оператор if за проверка изпълнение на логическо условие.
Следващият пример дава решение на задача за проверка на логическо условие с оператор if:Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.