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;