Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Условные операторы в C: IF, IF-ELSE и вложенные IF-ELSE подробно разобраны

Что такое условный оператор в C?

Условные операторы в C используются для принятия решений на основе условий. Условные операторы выполняются последовательно, когда нет условий вокруг операторов. Если вы ставите условие для блока операторов, поток выполнения может измениться в зависимости от результата, вычисленного условием. Этот процесс называется принятием решений в «C».

В программировании на «C» условные операторы возможны с помощью двух конструкций:

1. Оператор if

2. Оператор if-else

Это также называется ветвлением, так как программа решает, какой оператор выполнить, основываясь на результате вычисленного условия.

В этом уроке вы узнаете:

Оператор if

Это один из мощных условных операторов. Оператор if отвечает за изменение потока выполнения программы. Оператор if всегда используется с условием. Условие вычисляется первым перед выполнением любого оператора внутри тела if. Синтаксис оператора if выглядит так:

 if (condition) instruction;

Условие вычисляется как true (истина) или false (ложь). True — всегда ненулевое значение, false — значение, содержащее ноль. Инструкция может быть одной инструкцией или блоком кода, заключенным в фигурные скобки { }.

Следующая программа иллюстрирует использование конструкции if в программировании на «C»:

#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //тест-условие { printf("num1 is smaller than num2"); } return 0; } 

Вывод:

num1 is smaller than num2 

Приведенная выше программа иллюстрирует использование конструкции if для проверки равенства двух чисел.

Условные операторы в C: IF, IF-ELSE и вложенные IF-ELSE подробно разобраны

  1. В приведенной выше программе мы инициализировали две переменные num1, num2 со значениями 1, 2 соответственно.
  2. Затем мы использовали if с тестовым выражением для проверки, какое число меньше, а какое больше. Мы использовали выражение отношения в конструкции if. Поскольку значение num1 меньше num2, условие вычислится как true.
  3. Таким образом, будет напечатан оператор внутри блока if. После этого управление выйдет за пределы блока и программа завершится с успешным результатом.

Операторы отношения

В C есть шесть операторов отношения, которые можно использовать для формулирования булева выражения для принятия решения и проверки условий, возвращающих true или false:

< меньше

<= меньше или равно

> больше

>= больше или равно

== равно

!= не равно

Обратите внимание, что проверка на равенство (==) отличается от оператора присваивания (=), потому что это одна из самых частых проблем, с которыми сталкивается программист, перепутывая их.

Например:

int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");} 

Вывод :

 You succeed

Имейте в виду, что условие, вычисляющееся в ненулевое значение, считается true.

Например:

int present = 1; if (present) printf("There is someone present in the classroom \n"); 

Вывод :

There is someone present in the classroom

Оператор if-else

Условные операторы в C: IF, IF-ELSE и вложенные IF-ELSE подробно разобраны

Оператор if-else является расширенной версией if. Общая форма if-else выглядит так:

if (test-expression) { True block of statements } Else { False block of statements } Statements; 

В этом типе конструкции, если значение test-expression истинно, то будет выполнен true блок операторов. Если значение test-expression ложно, то будет выполнен false блок операторов. В любом случае после выполнения управление автоматически передается к операторам, появляющимся вне блока 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 

Условные операторы в C: IF, IF-ELSE и вложенные IF-ELSE подробно разобраны

  1. Мы инициализировали переменную со значением 19. Нам нужно выяснить, больше или меньше число десяти, используя программу на «C». Для этого мы использовали конструкцию if-else.
  2. Здесь мы предоставили условие num<10, потому что должны сравнить наше значение с 10.
  3. Как видите, первый блок всегда является true блоком, что означает: если значение test-expression истинно, то первый блок, который является if, будет выполнен.
  4. Второй блок — это else блок. Этот блок содержит операторы, которые будут выполнены, если значение test-expression станет false. В нашей программе значение num больше десяти, поэтому test-condition становится false и выполняется else блок. Таким образом, наш вывод будет из else блока — «The value is greater than 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;/* Это эквивалентно: 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.

Условные операторы в C: IF, IF-ELSE и вложенные IF-ELSE подробно разобраны

  1. Во-первых, мы объявили переменную num со значением 1. Затем мы использовали конструкцию if-else.
  2. Во внешнем if-else условие проверяет, меньше ли число 10. Если условие истинно, тогда и только тогда будет выполнен внутренний блок. В этом случае условие истинно, поэтому внутренний блок обрабатывается.
  3. Во внутреннем блоке у нас снова есть условие, проверяющее, содержит ли наша переменная значение 1 или нет. Когда условие истинно, тогда будет обработан if блок, иначе — else блок. В этом случае условие истинно, поэтому if блок выполняется и значение выводится на экран.
  4. Приведенная выше программа напечатает значение переменной и выйдет с успехом.

Попробуйте изменить значение переменной и посмотрите, как ведет себя программа.

ПРИМЕЧАНИЕ: В вложенных if-else нужно быть внимательным с отступами, потому что задействовано несколько конструкций if-else, поэтому становится трудно выделить отдельные конструкции. Правильные отступы облегчают чтение программы.

Вложенные операторы else-if

Вложенные 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. Тестовые выражения вычисляются сверху вниз. Всякий раз, когда находится истинный test-expression, выполняется связанный с ним оператор. Когда все n test-expressions становятся false, выполняется дефолтный 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 в приведенной выше программе.

Условные операторы в C: IF, IF-ELSE и вложенные IF-ELSE подробно разобраны

  1. Мы инициализировали переменную с оценками. В структуре лесенки else-if мы предоставили различные условия.
  2. Значение из переменной marks будет сравнено с первым условием, так как оно истинно, связанный с ним оператор будет напечатан на экране вывода.
  3. Если первый тестовый условий окажется false, тогда оно сравнивается со вторым условием.
  4. Этот процесс продолжится, пока все выражения не будут вычислены, иначе управление выйдет из лесенки else-if, и будет напечатан дефолтный оператор.

Попробуйте изменить значение и обратите внимание на изменение в выводе.

Резюме


Язык C

  1. Выражения, операторы и блоки в C#: подробное руководство с примерами
  2. Условная логика в C#: if, if-else, if-else-if и вложенные if
  3. Освоение условных операторов C++: if, if...else и вложенные if...else
  4. Условные операторы в C: if, else и не только — подробное руководство
  5. Освоение Java if…else: управление потоком выполнения
  6. Операторы в C++: типы, примеры и практические программы
  7. Оператор switch-case в C++: синтаксис, применение и практические примеры
  8. Структуры (struct) в C++: объяснение с практическим примером
  9. Освоение std::list в C++: синтаксис, функции и практические примеры
  10. C++ Struct vs Class: ключевые отличия, синтаксис и лучшие сценарии использования