Условные операторы в C: If, Else, вложенный If с примером.
⚡ Умное резюме
В языке C условные операторы управляют потоком выполнения программы, запуская блоки кода только тогда, когда проверяемое условие истинно, что позволяет принимать решения с помощью конструкций if, if-else, вложенных конструкций и else-if.

Что такое условный оператор в C?
Условные операторы в языке C используются для принятия решений на основе условий. Условные операторы выполняются последовательно, если вокруг них нет условий. Если вы зададите какое-либо условие для блока операторов, поток выполнения может измениться в зависимости от результата, полученного с помощью этого условия. Этот процесс называется принятием решений в языке C.
В отличие от циклы в C В повторяющемся коде условные операторы выбирают один из путей.
В программировании на языке «C» условные операторы возможны с помощью следующих двух конструкций:
- Если заявление
- Оператор if-else
Это также называется ветвлением, поскольку программа решает, какой оператор выполнить, на основе результата оцененного условия.
Если заявление
Это одно из мощных условных утверждений. Оператор if отвечает за изменение потока выполнения программы. Оператор if всегда используется с условием. Условие оценивается перед выполнением любого оператора внутри тела If. Синтаксис оператора if следующий:
if (condition)
instruction;
Условие оценивается как истинное или ложное. True всегда является ненулевым значением, а false — значением, содержащим ноль. Инструкции могут представлять собой одну инструкцию или блок кода, заключенный в фигурные скобки { }.
Следующая программа иллюстрирует использование конструкции if в программировании на языке «C»:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
Выход:
num1 is smaller than num2
Приведенная выше программа иллюстрирует использование конструкции if для проверки равенства двух чисел.
- В приведенной выше программе мы инициализировали две переменные с номерами num1, num2 и значениями 1, 2 соответственно.
- Затем мы использовали if с тестовым выражением, чтобы проверить, какое число является наименьшим, а какое — наибольшим. Мы использовали реляционное выражение в конструкции if. Поскольку значение num1 меньше, чем num2, условие будет оценено как true.
- Таким образом, он напечатает оператор внутри блока If. После этого управление выйдет за пределы блока и программа завершится с успешным результатом.
реляционный OperaTORs
В языке C существует шесть операторов сравнения, которые можно использовать для формулирования логических выражений для принятия решений и проверки условий, возвращающих значение true или false:
<- меньше, чем<=— меньше или равно>— больше, чем>=— больше или равно==— равно!=— не равен
Обратите внимание, что проверка равенства (==) отличается от оператора присваивания (=), поскольку это одна из наиболее распространенных проблем, с которыми сталкивается программист, смешивая их.
Например:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
Выход:
You succeed
Имейте в виду, что условие, которое имеет ненулевое значение, считается истинным.
Например:
int present = 1; if (present) printf("There is someone present in the classroom \n");
Выход:
There is someone present in the classroom
Заявление If-Else
Оператор if-else — это расширенная версия оператора if. Общая форма оператора if-else выглядит следующим образом:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
В такой конструкции, если значение тестового выражения истинно, то будет выполнен блок операторов, содержащий истинное значение. Если значение тестового выражения ложно, то будет выполнен блок операторов, содержащий ложное значение. В любом случае, после выполнения управление будет автоматически передано операторам, находящимся вне блока If.
Следующие программы иллюстрируют использование конструкции if-else:
Мы инициализируем переменную некоторым значением и напишем программу, которая определит, меньше ли это значение десяти или больше десяти.
Давайте начнем.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
Выход:
The value is greater than 10
- Мы инициализировали переменную значением 19. Нам нужно выяснить, больше или меньше это число 10, используя программу на языке C. Для этого мы использовали конструкцию if-else.
- Здесь мы предоставили условие num<10, потому что нам нужно сравнить наше значение с 10.
- Как вы можете видеть, первый блок всегда является истинным блоком, что означает, что если значение тестового выражения истинно, то первый блок, т. е. If, будет выполнен.
- Второй блок — это блок else. Этот блок содержит операторы, которые будут выполнены, если значение тестового выражения станет ложным. В нашей программе значение num больше десяти, поэтому условие проверки становится ложным, а иначе выполняется блок. Таким образом, наш вывод будет из блока else, который будет «Значение больше 10». После if-else программа завершится с успешным результатом.
В программировании на языке C мы можем использовать несколько конструкций if-else друг в друге, что называется вложением операторов if-else.
Условные выражения
Другой способ выразить оператор if-else — это ввести оператор ?:. В условном выражении оператор ?: связан только с одним условием if и одним условием else.
Например:
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
Выход:
y =2
Вложенные операторы if-else
Когда требуется серия решений, используется вложенный if-else. Вложенность означает использование одной конструкции if-else внутри другой.
Давайте напишем программу, иллюстрирующую использование вложенного if-else.
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
Выход:
The value is:1
Приведенная выше программа проверяет, меньше или больше число 10, и печатает результат, используя вложенную конструкцию if-else.
- Сначала мы объявили переменную num со значением 1. Затем мы использовали конструкцию if-else.
- Во внешнем блоке if-else условие проверяет, меньше ли число 10. Если условие истинно, то выполняется внутренний блок. В данном случае условие истинно, следовательно, внутренний блок обрабатывается.
- Во внутреннем блоке мы снова используем условие, проверяющее, содержит ли наша переменная значение 1. Если условие истинно, то выполняется блок If, в противном случае — блок else. В данном случае условие истинно, поэтому выполняется блок If, и значение выводится на экран.
- Приведённая выше программа выведет значение переменной и завершит работу с сообщением об успешном завершении.
Попробуйте изменить значение переменная Посмотрите, как работает программа.
ПРИМЕЧАНИЕ: Вложенные конструкции if-else требуют внимательного отношения к отступам, поскольку в них задействовано несколько конструкций if-else, что затрудняет определение их отдельных элементов. Правильные отступы облегчают чтение программы.
Вложенные операторы Else-if
Вложенное else-if используется, когда требуются решения по многопутевости.
Общий синтаксис построения лестниц-если в программировании на C следующий:
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
Такая структура известна как лестница else-if. Эта цепочка обычно выглядит как лестница, поэтому её также называют лестницей else-if. Проверочные выражения оцениваются сверху вниз. Всякий раз, когда обнаруживается истинное тестовое выражение, выполняется связанный с ним оператор. Когда все n тестовых выражений становятся ложными, выполняется оператор else по умолчанию.
Давайте посмотрим реальную работу с помощью программы.
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
Выход:
First class
Приведенная выше программа печатает оценку в соответствии с оценками, полученными в тесте. В приведенной выше программе мы использовали лестничную конструкцию else-if.
- Мы инициализировали переменную метками. В лестничной структуре else-if мы предусмотрели различные условия.
- Значение переменных меток будет сравниваться с первым условием, поскольку оно истинно, и связанное с ним утверждение будет напечатано на экране вывода.
- Если первое тестовое условие оказывается ложным, то оно сравнивается со вторым условием.
- Этот процесс будет продолжаться до тех пор, пока не будут оценены все выражения; в противном случае управление выйдет за пределы блока else-if, и будет выведено выражение default.
Попробуйте изменить значение и обратите внимание на изменение выходных данных.





