03. C/C++ Логические операции и операторы ветвления

C/C++ Логические операции и операторы ветвления

Одна из наиболее часто употребляющихся вещей в c/c++ это операторы ветвления:
они позволяют сделать выбор и изменить ход программы в результате этого выбора, например:

если пользователь нажал 1, то выполнить функцию 1,
если не нажал, то 2.

в синтаксисе языка это выглядит как:

if (something==something2)
{
     //code1
}
else
{
     //code2
}

внутри оператора if происходит проверка и если условие верное (something==something2), то возвращается bool значение true и выполняется code1

Логические операции && и ||, а также операции != и ==
используются при сравнении чего — либо

&& равносильно «и» возвращает true если оба операнда верны
|| равносильно «или» возвращает true если хотя бы один операнд верен
!=  означает «не равно»
== означает «равно»

Применим операцию && для 2 чисел:

int a=1, b=1;
if ((a==1) && (b!=1)) //если "a" равно 1 и b не равно 1, то выполнится code1
{
     //code1
}
else //в противном случае - code2
{
     //code2
}

Стоит отметить, что помимо стандартного синтаксиса для простых действий есть:

1-оператор else if

if ((a==1) && (b!=1)) //если "a" равно 1 и b не равно 1, то выполнится code1
{
     //code1
}
else if ((a==1) && (b==0)) //если "a" равно 1 и b равно 0, то выполнится code2
     {
       //code2
     }
     else //в противном случае, если условия 1 и 2 не выполнились, то выполняется code3
     {
       //code3
     }

2-тернарный оператор
используется как краткая замена if/else
int a=10, result;
result = a < 10 ? a : 10; //если a<10, то возвращается a, в противном случае возвращается 10.

данный код является заменой следующему:

int a=10, result;
if (a<10) //если "a" меньше 10
{
result=a;
}
else
{
result=10;
}

Думаю наглядно видно, что тернарный оператор м.б. удобен для «минимизации записи»

К слову обычный оператор ветвления тоже можно немного уменьшить, убрав фигурные скобки, т.к. действия в 1 строчку

int a=10, result;
if (a<10) result=a; //если "a" меньше 10
else      result=10;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *