if Statement
if Statement
सभी Control
Statements में से if Statement सबसे
शक्तिशाली Statement है , जिसके द्वारा हम Statements
के Execution के Flow को
Control कर सकते हैं |
यह
एक द्विमार्गी (Two Way) Statement है , जिसमें Condition
के सत्य या असत्य होने के आधार पर निर्भर करते हुए प्रोग्राम का Control
दो अलग – अलग बिंदुओं पर पहुँचता है |
इस तरह If Statement के अनुसार प्रोग्राम के पास दो रास्ते होते है , एक Condition के सत्य होने की स्थिति वाला रास्ता व दूसरा Condition के असत्य होने की स्थिति वाला रास्ता | जब हमें Condition के सत्य होने पर केवल एक Statement का Execution करना होता है , तब हम निम्न प्रकार के Syntax में If Condition को Use कर सकते हैं , जिसमें जब if Condition सत्य होती है तब Statement 1 Execute हो जाता है
जब हमें किसी Condition
के सत्य होने पर एक से अधिक Statements का Execution
करना होता है , तब हमें सभी Statements मंजले
कोष्टक में लिखने पड़ते है | यदि
हम ऐसा नहीं करते व ऊपर बताये Syntax के अनुसार ही
प्रोग्राम लिख देते है , तो Condition के सत्य होने पर “C”
Compiler पहले Statement का तो Execution
कर देता है , लेकिन शेष Statements को Program
की Condition के अनुसार Execute नहीं करता बल्कि उन्हें Program के Normal
Flow के अनुसार Execute करता है |
इस स्थिति में
पहले Statement
को छोडकर बाकी के सभी Statement हमेशा Execute
होते है , चाहे If Condition सत्य हो चाहे असत्य
| इसलिए यदि if
Condition के प्रोग्राम में एक से अधिक Statements का Execution करना हो तो हमें निम्न if Syntax
Use करना पड़ता है |
इसमें जब Condition
सत्य होती है , तो Block के अंदर , लिखे सारे Statement
का Execution हो जाता है , उसके बाद Other
Statements का यानी Block से बाहर के Statements
का Execution होता है |
लेकिन
यदि Condition
असत्य होती है , तो प्रोग्राम Control , if Condition के Block को छोड़ कर सीधे ही Other Statements
यानी Block के बाहर के Statements का Execution कर देता है | Condition
सत्य हो या असत्य फिर भी Other Statements यानी
Block से बाहर के Statement का Execution होता ही है , क्योंकि ये Statement Sequential Flow में
होते है |
Example
यदि कोई Employee
25 दिन से अधिक काम करता है , तो उसे उसकी Payment का 10% Bonus प्राप्त होगा |
Employee
को प्राप्त होने वाला फल पैसा ज्ञात करो |
इस
प्रोग्राम में निम्न Variable Define करने होंगे
|
1. Employee की Payment का मान Float Integer प्रकार का Variable मान Payment
2. प्राप्त
Bonus को Store करने के लिए एक Float
प्रकार का Variable माना bonus
3. कुल
कितने दिन काम किया इसे Store करने के लिए एक int प्रकार के Variable माना days
Algorithm
1. Payment व days Read करेंगे |
2. यदि
काम 25 दिन से अधिक किया है , तो 10 प्रतिशत
bonus दिया जाएगा और
bonus को Payment में जोड़ कर
कुल Payment Output में Print किया
जाएगा |
3. यदि
काम 25 से कम किया है , तो केवल Payment को Output में Print किया
जाएगा |
4. समाप्त
|
Program
/* If Condition Example */
#include<stdio.h>
main()
{
float payment = 0, bonus =0;
int days;
printf("\n Enter Payment of Employee");
scanf("%f",&payment);
printf("\n Total Working Days");
scanf("%d",&days);
if(days >=25)
{
bonus = payment *10/100;
payment = payment +bonus;
}
printf("\n Total Payment of The Employee is %6.2f\t",payment);
printf("\n Bonus Gained By Employee is %6.2f\t", bonus);
getch();
}
इस प्रोग्राम में
जब Input
किए गए दिन 25 से ज्यादा होते है , तो if
Condition सत्य हो जाती है |
तब
if
Statement Block का Execution होता है और bonus
की गणना होती है तथा bonus
payment में जुड जाता है |
जब
if
Condition Block से Program Control बाहर आता है , तब Total
Payment व bonus Print हो जाते है |
यदि Input
किए दिन 25 से कम होते है , तो if
Condition असत्य हो जाती है व प्रोग्राम Control , if Block में नहीं जाता , बल्कि सीधे ही Input की गई Payment
व bonus को Print कर
देता है , जिसमें bonus सुन्य होता है |
इस
प्रोग्राम में Control String के साथ Flags का प्रयोग किया गया है , जिससे Output में प्राप्त
होने वाला परिणाम दशमलव के बाद दो अंकों तक का ही मान प्रदान करता है |
हम
if
Statement में एक साथ दो Condition भी दे सकते
हैं |
इसे समझने के लिए
हम उपरोक्त प्रोग्राम में ही थोड़ा सा बदलाव कर रहे है |
जिसमें
किसी Employee
को Bonus तब प्राप्त होना चाहिए , जब उसकी Payment
3000 से अधिक हो व Employee कम से कम 25
दिन काम करता है |
इस प्रश्न में दो
शर्ते हो गई हैं | पहली ये , कि उसी
Employee
को 10% Bonus प्राप्त होगा , जिसकी Payment कम से कम 3000 हो और दूसरी ये कि Employee के कम से कम 25 दिन काम करना होगा |
इस समस्या को हल
करने के लिए हम if Condition कोष्टक में Logical
Operator तभी प्रोग्राम Control को दूसरे
बिन्दु पर भेजता है , जब दी गई दोनों शर्तों सत्य हो |
अब
if
Condition तभी सत्य होगी जब Employee की Payment
3000 या 3000 से अधिक हो और Employee
25 या 25 से अधिक दिन काम करे |
Logical Operator के सम्बन्ध में हमने बताया था कि AND Operator का
प्रयोग करने पर यदि Input की गई दोनों Condition सत्य हो तो प्रोग्राम 1 Return करता है अन्यथा
प्रोग्राम 0 Return करता है |
1
Return करने का मतलब है कि Condition सत्य है
और पहले वह काम होगा जिस काम के लिए Conditional Operator का
प्रयोग किया गया है , और 0 Return होने का मतलब है कि जिस
काम के लिए शर्त राखी गई है , वह कम नहीं होगा बल्कि उसके आगे के Statements
का Execution होगा |
इस
Modified
प्रोग्राम को आगे दिखाया गया है |
Program
/* If Condition Example */
#include<stdio.h>
main()
{
float payment = 0, bonus = 0;
int days;
printf("\n Enter Payment of Employee");
scanf("%f",&payment);
printf("\n Total Working Days");
scanf("%d",&days);
if(days >=25 && payment >=3000)
{
bonus = payment *10/100;
payment = payment + bonus;
}
printf("\n Total Payment of The Employee is %6.2f\t",payment);
printf("\n Bonus Gained By Employee is %6.2f\t",bonus);
getch();
}
हम if
Condition Block में OR व NOT
Condition का भी अपनी आवश्यकता के अनुसार प्रयोग कर सकते है और अपनी
जरुरत के अनुसार विभन्न प्रकार के Expressions if के कोष्टक
में प्रयोग कर सकते हैं |
No comments