C Decision Making

Introduction to C Decision Making

आप अपने program में कौनसे statements को execute करना चाहते है और कौनसे statements को skip करना चाहते है ये आप खुद decide कर सकते है। इसे decision making कहते है। ज्यादातर decision making किसी condition के base पर की जाती है।

एक particular condition आने पर आप मनचाहे statements को execute कर सकते है। इसके लिए आप कुछ built in statements को यूज़ करते है। क्योंकि ये statements conditions के साथ काम करते है इसलिए इन्हें conditional statement भी कहा जाता है।

और क्योंकि ये statement program में execution को control करते है इसलिए इन्हें control statements भी कहा जाता है।

मान लीजिये आप किन्हीं दो students में से जिसकी age अधिक हो उसका नाम print करना चाहते है। आप ऐसा किस प्रकार कर सकते है? नीचे दिए हुए program को देखिये।

#include <stdio.h>
#include <conio.h>
void main()
{
    raviAge = 40;
    ankitAge = 32;
}

उपर दिए गए उदाहरण में 2 students की age 2 variables में store की गयी है। लेकिन आपको सिर्फ उसी student की age print करनी है जिसकी age सबसे ज्यादा हो। इस situation में आपको decision लेने की आवश्यकता है। ऐसा आप किसी भी decision making statement (If, If-else, Switch) के द्वारा कर सकते है।

If Statement

If statement curly braces {} के द्वारा एक block define करता है। जब condition true होती है तो इस block में दिए गए statement execute होते है।

if(condition)
{
    /* Statements to be executed if condition is true */
}

यदि condition false हो तो इस पुरे block को compiler skip कर देता है। यदि उपर दिए गए example में if statement का use किया जाये तो program को इस प्रकार लिखा जा सकता है।

#include <stdio.h>
int main()
{
   int raviAge = 40;
   int ankitAge = 32;
  /* Taking decision which variable holds bigger value using if statement */

  if(raviAge > ankitAge)
  {
     printf(“Ravi is elder.”);
  }
  return 0;
}

उपर दिए गए उदाहरण में conditional operator का यूज़ करते हुए एक condition लगायी गयी है। यदि Ravi की age Ankit से अधिक है तो if statement में दिया गया printf() statement execute होगा है। लेकिन यदि ऐसा नहीं है तो ये statement execute नहीं होगा।

Ravi is elder.

If-Else Statement

If else statement को if statement का ही part माना जाता है। लेकिन इसमें else block और add किया जाता है। Else block में दिए गए statement तब execute होते है जब if की condition false हो जाती है।

if(condition)
{
    /* Statements to be executed when condition is true */
}
else
{
     /* Statements to be executed when condition is false */
}

जैसा की आपको पता है if की condition true होने पर if block में दिए गए statements execute होते है। लेकिन आप ये भी decide कर सकते है की यदि condition false हो तो क्या किया जाना चाहिए। इसके लिए आप else block यूज़ करते है। ये block हमेशा if block के बाद में आता है।

इस block में वो statements लिखे जाते है जो की condition false होने पर execute होंगे। यदि ऊपर दिए गए उदाहरण में if else statement का प्रयोग किया जाये तो आप उसे इस प्रकार लिख सकते है।

#include <stdio.h>
void main()
{
    int raviAge = 20;
    int ankitAge = 32;
   /* Taking decision using if else statements */

   if(raviAge > ankitAge)
   {
        printf(“Ravi is elder”);
   }
   else
   {
         printf(“Ankit is elder”);
   }
}
Ankit is elder.

else if

यदि आप if और else के बीच में एक और condition लगाना चाहते है तो ऐसा आप else if block define करके कर सकते है।

if(raviAge > ankitAge)
{
    printf(“Ravi is elder”);
}
/* one more condition checked using else if */
else if(ankitAge > raviAge)
{
    printf(“Ankit is elder”);
}
else
{
    printf(“Both are equal”);
}

Switch Statement

Switch statement भी if statement की तरह ही होता है लेकिन इसमें condition check करने की बजाय case check किया जाता है। एक particular case आने पर आप जो statements execute करना चाहते है उन्हें आप case के अंदर लिखते है।

Case एक integer variable से match किया जाता है। जो case integer variable से match हो जाता है वही case execute हो जाता है

int caseNumber = n;
switch(caseNumber)
{
case 1:
             /* Statements to be executed if caseNumber is 1 */
             break;
case 2:
             /* Statements to be executed if caseNumber is 2 */
             break;
default:
             /* Statements to be executed if caseNumber is not 1 & 2 */
             break;
}

जब आप caseNumber variable को किसी integer value के साथ set करते है और इसे switch statement में pass करते है तो ये number जिस caseNumber से match करेगा वही case execute होगा।

जैसे की यदि आपने case number में 2 pass किया है तो second number का case execute होगा और break से पहले के सभी statements execute हो जायेंगे।

यदि कोई case match नहीं करता है तो default case execute होता है। यदि हर case के बाद break statement ना यूज़ किया जाये तो सभी case execute हो जाएंगे। Case को आप alphabets से भी define कर सकते है।

#include <stdio.h>
void main()
{
int caseNumber;
printf(“Enter a number “);
scanf(“%d”,&caseNumber);
/* Passing the case number to switch to execute desired case */

switch(caseNumber)
{
     case 1:
                  printf(“nFirst Case executed….”);
                  break;
     case 2:
                  printf(“nSecond Case executed….”);
                  break;
     default:
                  printf(“nNone of the case matched. You can only enter 1 or 2”);
                  break;
}
}

उपर दिए गए उदाहरण में user से एक number enter करवाया जा रहा है और उस number के base पर matching case execute करवाया जा रहा है।

Enter a number :
2
Second case executed….