Учебники

7) 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 для проверки равенства двух чисел.

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

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

В 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 равно true, тогда будет выполнен истинный блок операторов. Если значение test-expression равно false, то блок операторов 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

  1. Мы инициализировали переменную со значением 19. Мы должны выяснить, больше или меньше число, используя программу «C». Для этого мы использовали конструкцию if-else.
  2. Здесь мы предоставили условие num <10, потому что мы должны сравнить наше значение с 10.
  3. Как вы можете видеть, первый блок всегда является истинным блоком, что означает, что если значение test-expression равно true, тогда будет выполнен первый блок, который является If.
  4. Второй блок – это еще блок. Этот блок содержит операторы, которые будут выполнены, если значение test-expression станет false. В нашей программе значение 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.

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

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

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

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

Nested 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. Эта цепочка обычно выглядит как лестница, следовательно, она также называется лестницей в другом месте. Тестовые выражения оцениваются сверху вниз. Всякий раз, когда истинное тестовое выражение, если найдено, выполняется связанный с ним оператор. Когда все 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.

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

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

Резюме

  • Операторы принятия решений или ветвления используются для выбора одного пути на основе результата оцененного выражения.
  • Он также называется управляющим оператором, потому что он контролирует ход выполнения программы.
  • «C» обеспечивает конструкции if, if-else для заявлений о принятии решений.
  • Мы также можем вкладывать if-else друг в друга, когда нужно проверить несколько путей.
  • Лестница else-if используется, когда мы должны проверять различные способы на основе результата выражения.