logo

Прийняття рішень у C (if, if..else, Nested if, if-else-if)

The умовні твердження (також відомі як структури керування рішеннями), такі як if, if else, switch тощо, використовуються для прийняття рішень у програмах на C.

Вони також відомі як оператори прийняття рішень і використовуються для оцінки однієї чи кількох умов і прийняття рішення щодо виконання набору операторів чи ні. Ці оператори прийняття рішень у мовах програмування визначають напрямок виконання програми.



Необхідність умовних операторів

У реальному житті бувають ситуації, коли нам потрібно прийняти якісь рішення і на основі цих рішень ми вирішуємо, що нам робити далі. Подібні ситуації виникають і в програмуванні, коли нам потрібно прийняти якісь рішення і на основі цих рішень ми будемо виконувати наступний блок коду. Наприклад, у C якщо зустрічається x, то виконується y, інакше виконується z. Також може бути кілька умов, як у C, якщо виникає x, тоді виконується p, інакше, якщо виникає умова y, виконується q, інакше виконується r. Ця умова C else-if є одним із багатьох способів імпортування кількох умов.

Типи умовних операторів у C

Нижче наведено твердження щодо прийняття рішень, доступні в C:

  1. оператор if
  2. Оператор if-else
  3. Вкладений оператор if
  4. якщо-інакше-якщо сходи
  5. Switch Statement
  6. Умовний оператор
  7. Оператори переходу:
    • перерва
    • продовжувати
    • йти до
    • повернення

Давайте обговоримо кожен з них по черзі.



1. якщо в C

The оператор if є найпростішим твердженням для прийняття рішення. Він використовується, щоб вирішити, чи буде виконано певний оператор або блок операторів, тобто якщо певна умова виконується, блок операторів виконується, інакше ні.

Синтаксис оператора if

  if  (  condition  )  {    // Statements to execute if     // condition is true  }>

Ось, хвороба після оцінки буде істинним або хибним. Оператор C if приймає логічні значення – якщо значення істинне, блок операторів під ним виконуватиметься, інакше ні. Якщо ми не поставимо фігурні дужки ‘{’ і ‘}’ після if(умови), то за замовчуванням оператор if вважатиме, що перший оператор, що знаходиться безпосередньо під ним, знаходиться всередині його блоку.

Блок-схема оператора if

якщо блок-схема

Блок-схема оператора if



Приклад якщо в C

C




// C program to illustrate If statement> #include> > int> main()> {> >int> i = 10;> > >if> (i>15) {> >printf>(>'10 is greater than 15'>);> >}> > >printf>(>'I am Not in if'>);> }>

>

>

Вихід

I am Not in if>

Оскільки умова в операторі if є хибною. Отже, блок під оператором if не виконується.

2. if-else в C

The якщо лише оператор говорить нам, що якщо умова істинна, блок операторів буде виконано, а якщо умова хибна, то ні. Але що, якщо ми хочемо зробити щось інше, коли умова хибна? Ось і C інше заява. Ми можемо використовувати інше заява з якщо оператор для виконання блоку коду, коли умова хибна. The оператор if-else складається з двох блоків, один для хибного вираження, а інший для істинного вираження.

Синтаксис if else у C

  if   (  condition  ) {     // Executes this block if     // condition is true  }   else  {    // Executes this block if     // condition is false  }>

Блок-схема оператора if-else

якщо інакше блок-схема

Блок-схема if else

Приклад if-else

C




// C program to illustrate If statement> #include> > int> main()> {> >int> i = 20;> > >if> (i <15) {> > >printf>(>'i is smaller than 15'>);> >}> >else> {> > >printf>(>'i is greater than 15'>);> >}> >return> 0;> }>

>

>

Вихід

i is greater than 15>

Блок коду після інше оператор виконується як умова, присутня в якщо твердження невірне.

listnode java

3. Вкладено if-else у C

Вкладений оператор if у C є оператором if, який є метою іншого оператора if. Вкладені оператори if означають оператор if всередині іншого оператора if. Так, C дозволяє нам вкладати оператори if в оператори if, тобто ми можемо розмістити оператор if всередині іншого оператора if.

Синтаксис вкладеного if-else

  if   (  condition1  )  {    // Executes when condition1 is true     if   (  condition2  )   {     // Executes when condition2 is true   }    else   {    // Executes when condition2 is false  }>

Блок-схема вкладеного if-else

Блок-схема вкладеного if-else

Приклад вкладеного if-else

C




// C program to illustrate nested-if statement> #include> > int> main()> {> >int> i = 10;> > >if> (i == 10) {> >// First if statement> >if> (i <15)> >printf>(>'i is smaller than 15 '>);> > >// Nested - if statement> >// Will only be executed if statement above> >// is true> >if> (i <12)> >printf>(>'i is smaller than 12 too '>);> >else> >printf>(>'i is greater than 15'>);> >}> > >return> 0;> }>

>

>

Вихід

i is smaller than 15 i is smaller than 12 too>

4. if-else-if Ladder в C

The оператори if else if використовуються, коли користувач має вибрати один із кількох варіантів. Інструкції C if виконуються зверху вниз. Як тільки одна з умов, що керують if, стає істинною, оператор, пов’язаний з цим if, виконується, а решта сходів C else-if обходиться. Якщо жодна з умов не виконується, тоді буде виконано останній оператор else. Сходи if-else-if схожі на оператор switch.

Синтаксис драбини if-else-if

  if   (  condition  )    statement;    else if   (  condition  )    statement;  . .   else     statement;>

Блок-схема сходів if-else-if

Блок-схема оператора if-else-if

Блок-схема if-else-if

Приклад драбини if-else-if

C




// C program to illustrate nested-if statement> #include> > int> main()> {> >int> i = 20;> > >if> (i == 10)> >printf>(>'i is 10'>);> >else> if> (i == 15)> >printf>(>'i is 15'>);> >else> if> (i == 20)> >printf>(>'i is 20'>);> >else> >printf>(>'i is not present'>);> }>

>

>

Вихід

i is 20>

5. Оператор switch на C

The переключити регістр є альтернативою сходам if else if, які можна використовувати для виконання умовного коду на основі значення змінної, зазначеної в операторі switch. Блок перемикання складається з випадків, які потрібно виконати на основі значення змінної перемикання.

Синтаксис перемикача

  switch   (  expression  ) {    case     value1:     statements;     case    value2:     statements;   ....  ....  ....    default:     statements;  }>

Примітка: Вираз перемикання має мати ціле чи символьне значення. Він не може оцінити будь-який інший тип даних.

Блок-схема комутатора

блок-схема перемикання

Блок-схема комутатора в C

Приклад оператора switch

C




// C Program to illustrate the use of switch statement> #include> > int> main()> {> >// variable to be used in switch statement> >int> var = 2;> > >// declaring switch cases> >switch> (var) {> >case> 1:> >printf>(>'Case 1 is executed'>);> >break>;> >case> 2:> >printf>(>'Case 2 is executed'>);> >break>;> >default>:> >printf>(>'Default Case is executed'>);> >break>;> >}> > >return> 0;> }>

>

>

Вихід

Case 2 is executed>

6. Умовний оператор у C

The умовний оператор використовується для додавання умовного коду в нашу програму. Це схоже на оператор if-else. Він також відомий як тернарний оператор, оскільки працює з трьома операндами.

Синтаксис умовного оператора

(  condition  )   ?     [true_statements]     :     [false_statements]  ;>

Блок-схема умовного оператора

блок-схема умовних операторів

Блок-схема умовного оператора

Приклад умовного оператора

C




// C Program to illustrate the use of conditional operator> #include> > // driver code> int> main()> {> > >int> var;> >int> flag = 0;> > >// using conditional operator to assign the value to var> >// according to the value of flag> >var = flag == 0 ? 25 : -25;> >printf>(>'Value of var when flag is 0: %d '>, var);> > >// changing the value of flag> >flag = 1;> >// again assigning the value to var using same statement> >var = flag == 0 ? 25 : -25;> >printf>(>'Value of var when flag is NOT 0: %d'>, var);> > >return> 0;> }>

>

>

Вихід

Value of var when flag is 0: 25 Value of var when flag is NOT 0: -25>

7. Оператори переходу в C

Ці оператори використовуються в C для безумовного потоку керування всіма функціями в програмі. Вони підтримують чотири типи операторів переходу:

а) перерва

Цей оператор керування циклом використовується для завершення циклу. Як тільки перерва оператор зустрічається всередині циклу, ітерації циклу на цьому зупиняються, а керування повертається з циклу відразу до першого оператора після циклу.

Синтаксис break

break;>

В основному оператори break використовуються в ситуаціях, коли ми не впевнені щодо фактичної кількості ітерацій для циклу або ми хочемо завершити цикл на основі певної умови.

розбити блок-схему

Приклад розриву

C




// C program to illustrate> // to show usage of break> // statement> #include> > void> findElement(>int> arr[],>int> size,>int> key)> {> >// loop to traverse array and search for key> >for> (>int> i = 0; i if (arr[i] == key) { printf('Element found at position: %d', (i + 1)); break; } } } int main() { int arr[] = { 1, 2, 3, 4, 5, 6 }; // no of elements int n = 6; // key to be searched int key = 3; // Calling function to find the key findElement(arr, n, key); return 0; }>

>

>

Вихід

Element found at position: 3>

Б) продовжувати

Цей оператор керування циклом схожий на оператор break. The продовжувати заява протилежний розриву заява , замість завершення циклу, він змушує виконати наступну ітерацію циклу.
Як випливає з назви, оператор continue змушує цикл продовжувати або виконувати наступну ітерацію. Коли оператор continue виконується в циклі, код усередині циклу, наступний за оператором continue, буде пропущено, і розпочнеться наступна ітерація циклу.

Синтаксис продовження

continue;>

Блок-схема продовження

Блок-схема C оператора continue

Приклад продовження

C




// C program to explain the use> // of continue statement> #include> > int> main()> {> >// loop from 1 to 10> >for> (>int> i = 1; i <= 10; i++) {> > >// If i is equals to 6,> >// continue to next iteration> >// without printing> >if> (i == 6)> >continue>;> > >else> >// otherwise print the value of i> >printf>(>'%d '>, i);> >}> > >return> 0;> }>

>

>

Вихід

1 2 3 4 5 7 8 9 10>

Якщо ви створюєте змінну в if-else у C, вона буде локальною лише для цього блоку if/else. Ви можете використовувати глобальні змінні всередині блоку if/else. Якщо ім’я змінної, яку ви створили в if/else, таке ж, як і будь-якої глобальної змінної, пріоритет буде надано «локальній змінній».

C




#include> > int> main()> {> > >int> gfg = 0;>// local variable for main> >printf>(>'Before if-else block %d '>, gfg);> >if> (1) {> >int> gfg = 100;>// new local variable of if block> >printf>(>'if block %d '>, gfg);> >}> >printf>(>'After if block %d'>, gfg);> >return> 0;> }>

>

>

Вихід

Before if-else block 0 if block 100 After if block 0>

C) йти до

The оператор goto у C, який також називають оператором безумовного переходу, можна використовувати для переходу з однієї точки на іншу в межах функції.

Синтаксис goto

  Syntax1 | Syntax2  ----------------------------   goto     label;   |   label:   . | . . | . . | .   label:   |   goto     label;>

У наведеному вище синтаксисі перший рядок повідомляє компілятору перейти або перейти до оператора, позначеного як мітка. Тут мітка — це визначений користувачем ідентифікатор, який вказує на цільовий оператор. Оператор, який слідує одразу після «label:», є оператором призначення. «Label:» також може з’явитися перед оператором «goto label;» у наведеному вище синтаксисі.

Блок-схема інструкції goto

Приклади goto

C




// C program to print numbers> // from 1 to 10 using goto> // statement> #include> > // function to print numbers from 1 to 10> void> printNumbers()> {> >int> n = 1;> label:> >printf>(>'%d '>, n);> >n++;> >if> (n <= 10)> >goto> label;> }> > // Driver program to test above function> int> main()> {> >printNumbers();> >return> 0;> }>

>

>

Вихід

1 2 3 4 5 6 7 8 9 10>

Г) повернення

The повернення у C повертає потік виконання до функції, звідки він викликаний. Цей оператор не потребує обов’язкових умовних операторів. Як тільки інструкція виконується, потік програми негайно припиняється та повертає керування з того місця, звідки його було викликано. Інструкція return може або не може нічого повертати для функції void, але для функції, яка не є void, має повертатися значення, що повертається.

Блок-схема повернення

блок-схема повернення

Технологічна схема повернення

Синтаксис повернення

  return    [expression]  ;>

Приклад повернення

C




// C code to illustrate return> // statement> #include> > // non-void return type> // function to calculate sum> int> SUM(>int> a,>int> b)> {> >int> s1 = a + b;> >return> s1;> }> > // returns void> // function to print> void> Print(>int> s2)> {> >printf>(>'The sum is %d'>, s2);> >return>;> }> > int> main()> {> >int> num1 = 10;> >int> num2 = 10;> >int> sum_of = SUM(num1, num2);> >Print(sum_of);> >return> 0;> }>

>

>

Вихід

The sum is 20>