Условный оператор C: IF, IF Else и вложенный IF Else с примером
Что такое условный оператор в C?
Условные операторы в C программирование используется для принятия решений на основе условий. Условные операторы выполняются последовательно, если вокруг операторов нет условий. Если вы поставите какое-то условие для блока операторов, поток выполнения может измениться в зависимости от результата, оцененного по условию. Этот процесс называется принятием решения в «C».
В программировании на языке «C» условные операторы возможны с помощью следующих двух конструкций:
1. Если утверждение
2. Оператор 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 is является расширенной версией If. Общая форма if-else следующая:
if (test-expression) { True block of statements } Else { False block of statements } Statements;
В этом типе конструкции, если значение test-expression истинно, то будет выполнен истинный блок операторов. Если значение test-expression ложно, то будет выполнен ложный блок операторов. В любом случае после выполнения управление будет автоматически передано операторам, появляющимся вне блока 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 и будет напечатан оператор по умолчанию.
Попробуйте изменить значение и обратите внимание на изменение выходных данных.
Итого
- Операторы принятия решений или ветвления используются для выбора одного пути на основе результата вычисленного выражения.
- Его также называют оператором управления, поскольку он управляет потоком выполнения программы.
- «C» обеспечивает конструкции if, if-else для операторов принятия решений.
- Мы также можем вкладывать if-else друг в друга, когда необходимо протестировать несколько путей.
- Лестница else-if используется, когда нам нужно различными способами проверить результат выражения.