Учебники

Заявления о решениях

Принятие решений имеет решающее значение для компьютерного программирования. Будет много ситуаций, когда вам будут предоставлены две или более опций, и вам придется выбирать опцию в зависимости от заданных условий. Например, мы хотим напечатать замечание о студенте на основе его безопасных оценок. Ниже приводится ситуация —

Assume given marks are x for a student:

If given marks are more than 95, then
Student is brilliant

If given marks are less than 30, then
Student is poor

If given marks are less than 95 and more than 30, then
Student is average

Теперь вопрос в том, как написать программный код для обработки таких ситуаций. Почти все языки программирования предоставляют условные операторы, которые работают на основе следующей блок-схемы:

Принятие решений заявления в C

Давайте напишем C-программу с помощью условных операторов if для преобразования приведенной выше ситуации в программный код —

Live Demo

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
	
      printf( "Student is brilliant\n");
   }
   if( x < 30) {
	
      printf( "Student is poor\n");
   }
   if( x < 95 && x > 30 ) {
	
      printf( "Student is average\n");
   }
}

Когда вышеуказанная программа выполняется, она дает следующий результат —

Student is average

Приведенная выше программа использует условные операторы if . Здесь первый оператор if проверяет, является ли данное условие, т. Е. Переменная x больше 95, или нет, и если он находит условие истинным, то вводится условное тело для выполнения данных операторов. Здесь у нас есть только одна инструкция printf (), чтобы напечатать замечание о студенте.

Точно так же работает второе утверждение if . Наконец, третий оператор if выполняется, здесь мы имеем два следующих условия:

  • Первое условие х> 95

  • Второе условие х <30

Первое условие х> 95

Второе условие х <30

Компьютер оценивает оба заданных условия, а затем общий результат объединяется с помощью бинарного оператора && . Если конечный результат равен true, то условный оператор будет выполнен, иначе оператор не будет выполнен.

Этот учебник даст вам основную идею о различных формах операторов if и введение в операторы switch, доступные на языке программирования C. Различные языки программирования предоставляют разные типы решений для принятия решений, но основная концепция остается такой же, как объяснено в этом руководстве.

если … еще заявление

За оператором if может следовать необязательный оператор else , который выполняется, когда логическое выражение имеет значение false. Синтаксис оператора if … else в языке программирования C —

if(boolean_expression) {
   
   /* Statement(s) will execute if the boolean expression is true */
} else {
  
  /* Statement(s) will execute if the boolean expression is false */
}

Приведенный выше синтаксис может быть представлен в виде блок-схемы, как показано ниже —

C если ... еще заявление

Оператор if … else полезен, когда нам нужно принять решение из двух вариантов. Например, если ученик набрал больше баллов, чем 95, то он блестящий, иначе ни одна такая ситуация не может быть закодирована, как показано ниже:

Live Demo

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
	
      printf( "Student is brilliant\n");
   } else {
      printf( "Student is not brilliant\n");
   }
}

Когда вышеуказанная программа выполняется, она дает следующий результат —

Student is not brilliant

if … elseif … else заявление

За оператором if может следовать необязательный оператор else if … else , который очень полезен для проверки различных условий.

При использовании операторов if, else if, else необходимо учитывать несколько моментов:

  • У if может быть ноль или еще один , и он должен идти после else if .

  • Если может иметь ноль для многих других … если и они должны прийти раньше, чем остальные .

  • Однажды … если получится, ни одна из оставшихся не будет проверена.

У if может быть ноль или еще один , и он должен идти после else if .

Если может иметь ноль для многих других … если и они должны прийти раньше, чем остальные .

Однажды … если получится, ни одна из оставшихся не будет проверена.

Синтаксис оператора if … else if … else в языке программирования C —

if(boolean_expression 1) {

   /* Executes when the boolean expression 1 is true */
}
else if( boolean_expression 2) {

   /* Executes when the boolean expression 2 is true */
}
else if( boolean_expression 3) {

   /* Executes when the boolean expression 3 is true */
} else {
   
   /* Executes when the none of the above condition is true */
}

Теперь с помощью оператора if … elseif … else самая первая программа может быть закодирована следующим образом:

Live Demo

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
      printf( "Student is brilliant\n");
   } 
   else if( x < 30) {
      printf( "Student is poor\n");
   } 
   else if( x < 95 && x > 30 ) {
      printf( "Student is average\n");
   }
}

Когда вышеуказанная программа выполняется, она дает следующий результат —

Student is average

Заявление о переключении

Оператор switch является альтернативой операторов if, который позволяет проверять переменную на равенство со списком значений. Каждое значение называется регистром , а включаемая переменная проверяется для каждого регистра. Он имеет следующий синтаксис —

switch(expression){
   case ONE :
      statement(s);
      break;
   case TWO:
      statement(s);
      break;
   ......
   
   default :
      statement(s);
}

Выражение, используемое в операторе switch, должно давать целочисленное значение, которое будет сравниваться на равенство с различными приведенными случаями. Везде, где значение выражения совпадает со значением регистра, тело этого случая будет выполняться, и, наконец, переключение будет прервано с помощью оператора break . Если операторы прерывания не предоставлены, то компьютер продолжает выполнять другие операторы, доступные ниже для соответствующего случая. Если ни один из случаев не совпадает, выполняется тело случая по умолчанию.

Приведенный выше синтаксис может быть представлен в виде блок-схемы, как показано ниже —

Переключение оператора в C

Теперь давайте рассмотрим другой пример, где мы хотим написать эквивалентное английское слово для данного числа. Затем это может быть закодировано следующим образом —

Live Demo

#include <stdio.h>

int main() {
   int x = 2;
   
   switch( x ){
      case 1 :
         printf( "One\n");
         break;
      case 2 :
         printf( "Two\n");
         break;
      case 3 :
         printf( "Three\n");
         break;
      case 4 :
         printf( "Four\n");
         break;
      default :
         printf( "None of the above...\n");
   }
}

Когда вышеуказанная программа выполняется, она дает следующий результат —

Two

Решения в Java

Ниже приводится эквивалентная программа, написанная на Java, которая также поддерживает операторы if , if … else , if … elseif … else и switch .

Вы можете попытаться выполнить следующую программу, чтобы увидеть выходные данные, которые должны быть идентичны результату, сгенерированному в примере C выше.

Live Demo

public class DemoJava {
   public static void main(String []args) {
      int x = 45;
   
      if( x > 95) {
         System.out.println( "Student is brilliant");
      } 
      else if( x < 30) {
         System.out.println( "Student is poor");
      } 
      else if( x < 95 && x > 30 ) {
         System.out.println( "Student is average");
      }
   }
}

Когда вышеуказанная программа выполняется, она дает следующий результат —

Student is average

Решения в Python

Ниже приводится эквивалентная программа, написанная на Python. Python предоставляет if , if … else , if … elif … else и операторы switch . Здесь вы должны заметить, что Python не использует фигурные скобки для условного тела, вместо этого он просто идентифицирует тело блока, используя отступы операторов.

Вы можете попробовать выполнить следующую программу, чтобы увидеть результат —

Live Demo

x = 45

if x > 95:
   print "Student is brilliant"
elif x < 30:
   print "Student is poor"
elif x < 95 and x > 30:
   print "Student is average"

print "The end"

Когда вышеуказанная программа выполняется, она дает следующий результат —