Control Statements in C#: C/C++ व Java की तरह ही C# में भी विभिन्न प्रकार के Control Statements को Define किया गया है, जिनका प्रयोग करके Program Control को Program के एक Execution Point से दूसरे Execution Point पर Transfer किया जाता है अथवा Program के Flow को Control किया जाता है।
मूल रूप से किसी भी Programming Language की तरह ही C# में भी Conditional, Branching व Looping Statements होते हैं और सामान्यत: ये Statements सभी Programming Languages में समान ही होते हैं।
Conditional Control Statements in C#
Conditional Statements वे Statements होते है, जो किसी Specific Condition के true होने की स्थिति में ही Specify किए गए एक या एक से ज्यादा Statements का Execution करते हैं। C# द्वारा Supported विभिन्न Conditional Statements निम्नानुसार हैं:
if Statement
इस Statement का प्रयोग करके हम एक या एक से ज्यादा Statements को किसी Condition के आधार पर Execute होने अथवा न होने के लिए Program कर सकते हैं। इस Statement का Syntax निम्नानुसार होता है:
if(condition) { // Statements to be execute when condition returns Boolean true }
इस Syntax के अनुसार यदि if Parenthesis के बीच Specified condition या Expression से true Boolean मान Return होता है, तो Curly Braces के बीच Specified Statements का Execution होता है, अन्यथा C# Program Control Curly Braces के बीच Specified किसी भी Statement को Execute नहीं करता।
if … else Statement
इस Statement का प्रयोग हम सामान्यत: तब करते हैं, जब हमारे पास दो प्रकार के एक या एक से ज्यादा Statements का एक ऐसा Group होता है, जिनमें से कुछ का Execution किसी Condition के true होने पर करना होता है, जबकि कुछ का Execution Condition के false होने पर करना होता है। इस Statement का Syntax निम्नानुसार होता है:
if(condition) { // Statements to be execute when condition returns Boolean true } else { // Statements to be execute when condition returns Boolean false }
इस Syntax के अनुसार यदि if Parenthesis के बीच Specified condition या Expression से true Boolean मान Return होता है, तो if Statement Block में Specified Statements का Execution होता है, अन्यथा C# Program Control else Statement Block में Specified Statements Execution कर देता है।
else if … Statement
इस Statement का प्रयोग हम सामान्यत: तब करते हैं, जब हमारे पास दो से ज्यादा प्रकार के एक या एक से ज्यादा Statements का एक Group होता है, जिन्हें किसी Particular Condition के Match होने की स्थिति में ही Execute करना होता है। इस Statement का Syntax निम्नानुसार होता है:
if(condition) { // Statements to be execute when condition returns Boolean true } else if(condition) { // Statements to be execute when condition returns Boolean true } else if(condition) { // Statements to be execute when condition returns Boolean true } else { // Statements to be execute when all other conditions returns Boolean false }
इस Syntax के अनुसार यदि if Parenthesis के बीच Specified condition या Expression से true Boolean मान Return होता है, तो if Statement Block में Specified Statements का Execution होता है, अन्यथा C# Program Control अगले else if Parenthesis के बीच Specified condition या Expression को Test करता है और true होने की स्थिति में इस else if Statement Block में Specified Statements Execution कर देता है अन्यथा अगले else if Parenthesis के बीच Specified condition या Expression को Test करता है और ये प्रक्रिया तब तक जारी रहती है, जब तक कि सभी if else Statements Test नहीं हो जाते। जबकि यदि कोई भी if या else if Statement Block Execute नहीं होताए तो अन्त में Default रूप से else Statement Block Execute हो जाता है।
Looping Control Statements in C#
Looping Statements वे Statements होते है, जो किसी Specific Condition के true रहने तक Specify किए गए एक या एक से ज्यादा Statements का बार-बार Execution करते हैं। C# द्वारा Supported विभिन्न Looping Statements निम्नानुसार हैं:
for Loop
किसी भी Programming Language में इसी Looping Construct को सबसे ज्यादा Use किया जाता है। इस Loop का Syntax निम्नानुसार होता है:
if(i = start; i <= end; i + step) { // Statements to be execute when condition returns Boolean true }
ये Loop Curly Braces के बीच Specified Statements को तब तक बार-बार Execute करता रहता है, जब तक कि i का मान start से लेकर step के माध्यम से बढते-बढते end तक नहीं पहुंच जाता।
while Loop
इस Looping Construct का प्रयोग सामान्यत: तब किया जाता है, जब हमें पता नहीं होता कि Loop को कितनी बार चलाना है। लेकिन यदि हम चाहें तो इस Loop को किसी भी अन्य Loop के Alternative की तरह Use कर सकते हैं। इस Loop का Syntax निम्नानुसार होता है:
i = start; while(i <= end) { // Statements to be execute when condition returns Boolean true i + step }
do … while Loop
इस Looping Construct का प्रयोग भी सामान्यत: तब किया जाता है, जब हमें पता नहीं होता कि Loop को कितनी बार चलाना है, लेकिन फिर भी कम से कम एक बार तो चलाना ही होता है। इस Loop का Syntax निम्नानुसार होता है:
i = start; do { // Statements to be execute when condition returns Boolean true i + step } while(i <= end);
foreach Loop
ये एक नया Looping Construct है, जिसे C# में Add किया गया है। इस Loop का प्रयोग किसी Collection के सभी Elements को Access व Manipulate करने के लिए किया जाता है। इसलिए इस Construct के बारे में हम तभी बेहतर तरीके से समझेंगे, जब हम किसी Collection के बारे में Discuss करेंगे।
Branching Control Statements in C#
C# में भी C/C++ व Java की तरह switch Statement Define किया गया है, जो कि एक Unconditional Branching Statement होता है। यानी जब हम इस Statement को Use करते हैं, तो किसी भी प्रकार की Condition के आधार पर नहीं] बल्कि किसी Expression से Generate होने वाले Result के आधार पर एक या एक से ज्यादा Statements का Execution करने की सुविधा प्राप्त करते हैं। इस Statement का Syntax निम्नानुसार होता है:
switch(expression) { case value1: //Statements to be execute if returned value of expression matches with value1 break; case value2: //Statements to be execute if returned value of expression matches with value2 break; case value3: //Statements to be execute if returned value of expression matches with value3 break; default: //Statements to be execute if returned value of expression matches with value1 break; }
इस Statement में switch Parenthesis के बीच Specified expression से Generate होने वाला मान यदि case value1 से Match करता है, तो case value1 का Statement Block Execute होता है। यदि case value2 से Match करता है, तो case value2 का Statement Block Execute होता है। यदि case value3 से Match करता है, तो case value3 का Statement Block Execute होता है। जबकि यदि किसी भी case से Match नहीं करताए तो Default रूप से default case का Statement Block Execute हो जाता है।
जब हम switch Statement Use करते हैं, तब हमें इसी बात का ध्यान रखना होता है कि हर Case Block का अन्त एक break से करना जरूरी होता है अन्यथा अन्य Case Block के Codes के Execute होने की भी सम्भावना रहती है।
Jumping Control Statements in C#
C# में हम break, return, continue व goto चार ऐसे Programming Constructs हैं, जिनका प्रयोग Program में एक Execution Point से किसी दूसरे Execution Point पर Jump करने के लिए किया जाता है।
break Statement
जब हम Looping Construct Use करते हैं, तब कई बार हम Deep Level Looping में पहुंच जाते हैं। उस स्थिति में किसी Specific स्थिति में Loop से Exit करने के लिए हम break Statement का प्रयोग कर सकते हैं। जैसे:
// File Name: breakStatement2ExitFromLoop.cs using System; namespace CSharpFundamentals { class breakStatement2ExitFromLoop { private static void Main(string[] args) { int factor = 1; int num = 1000; for(int i=2; i <= num/i; i++) { if((num%i) == 0) { factor = i; break; // stop loop when factor is found } } Console.WriteLine("Smallest factor is " + factor); } } } // Output: Smallest factor is 2
जैसाकि इस Program में हम देख सकते हैं कि ये Program वह सबसे छोटी संख्या Return कर रहा है, जिसका पूरा-पूरा भाग मान 1000 में दिया जा सकता है। यानी ये Program Lowest Common Factor Return करता है, जो कि 2 है।
जब ये Program Run होता है तो मान 1000 में संख्या क्रम से 2, 3, 4, …, etc से भाग देना शुरू करता है और तब तक भाग देता रहता है, जब तक कि कोई ऐसी संख्या प्राप्त नहीं हो जाती, जिसका पूरा-पूरा भाग मान 1000 में चला जाए।
चूंकि 1 के अलावा 2 वह सबसे छोटी संख्या है, जिसका पूरा-पूरा भाग मान 1000 में जाता है, इसलिए जैसे ही i का मान 2 होता है, निम्नानुसार if Statement Execute होता है:
if((num%i) == 0)
चूंकि इस if Statement में Specified Expression (num%2) == 0 एक Boolean true मान Return करता है, जिसकी वजह से if Statement True हो जाता है। परिणामस्वरूप if Statement के true होने की स्थिति में निम्नानुसार if Statement Block Execute होता है:
factor = i;
break; // stop loop when factor is found
और factor Variable में i का Current मान Store करके Loop को break Statement द्वारा ;हीं पर Break करते हुए Loop को आगे Repeat होने से रोक देता है। क्योंकि वह Lowest Common Factor प्राप्त हो चुका है, जिसका पूरा-पूरा भाग मान 1000 में जाता है।
इस तरह से break Statement का प्रयोग सामान्यत: Program Control को switch Statement या Looping Statement के Block से Exit करने के लिए किया जाता है।
continue Statement
break Statement का प्रयोग करके हम Program Control को किसी Loop या switch Statement Block से Exit करवा सकते हैं, जबकि continue Statement का प्रयोग करके हम Program Control को किसी Looping Construct से Exit नहीं करते, बल्कि हम Looping के केवल किसी Matching Iteration को Skip करते हैं। जैसे:
// File Name: continueStatement2SkipLoopIteration.cs using System; namespace CSharpFundamentals { class continueStatement2SkipLoopIteration { private static void Main(string[] args) { for(int i = 0; i <= 10; i++) { if((i%2) != 0) continue; Console.WriteLine(i); } } } } // Output: 0 2 4 6 8 10
जैसाकि इस Program के Output में हम देख रहे हैं कि ये Program हमें 0 से 10 के बीच की केवल वे ही संख्याऐं Return कर रहा है, जो कि सम संख्याऐं हैं। ऐसा इसलिए हो रहा है क्योंकि जैसे ही Loop Run होता है, i का मान 0 होने की वजह से Control For Loop के Block में पहुंचता है, जहां उसे निम्नानुसार एक if Statement प्राप्त होता है:
if((i%2) != 0)
चूंकि i का मान सबसे पहले 0 होता है, इसलिए 0 में 2 का भाग पूरा-पूरा नहीं जाता या 0 बार जाता है, परिणामस्वरूप 0 != 0 होने की वजह से Condition False हो जाता है और Program Control सीधे ही निम्न Statement पर पहुंचकर i के मान 0 को Output में Display कर देता है।
Console.WriteLine(i);
अगले Iteration में i का मान बढकर 1 हो जाता है, लेकिन इस बार if Statement में Execute होने वाला Expression 1 != 0 मान Return करता है, जो कि एक True Statement होने की वजह से Program Control, if Statement Block में Enter करता है, जहां उसे निम्नानुसार continue Statement प्राप्त होता है:
continue;
जैसे ही Program Control को continue Statement प्राप्त हो, Program Control Current Statement से सीधे ही Loop की शुरूआत में Move हो जाता है और i के मान को Increment करके 3 कर देता है।
चूंकि Program Control Current Statement से नीचे जाता ही नहीं है, इसलिए i का मान 1 Output में Display नहीं होता और यही प्रक्रिया तब होती है, जब i का मान 3, 5, 7 व 9 होता है।
इसीलिए Output में केवल सम संख्याऐं ही Display होती हैं विषम नहीं। क्योंकि हर विषम संख्या के लिए Program Control Loop के Iteration को Skip कर देता है।
goto Statement
goto Statement C# का एक Unconditional Jumping Statement है। जब Program Control को goto Statement मिलता है, तो Program Control सीधे ही Program के उस Execution Point पर Jump करता है, जहां पर Jump करने के लिए goto Statement को Specify किया गया होता है।
चूंकि goto Statement का Use करने पर Program काफी Unreadable व समझने में काफी मुि”कल हो जाता है, इसलिए goto Statement को सामान्यत: Programming में Ignore किया जाता है। फिर भी यदि सावधानीपूर्वक Use किया जाए, तो goto को काफी Efficient तरीके से Use किया जा सकता है।
इस Statement को बेहतर तरीके से समझने के लिए हम इसे निम्न Program में एक switch Statement के बीच Use कर रहे हैं:
// File Name: gotoStatementWithinSwitchStatement.cs using System; namespace CSharpFundamentals { class gotoStatementWithinSwitchStatement { private static void Main(string[] args) { for(int i=1; i < 5; i++) { switch(i) { case 1: Console.WriteLine("In case 1"); goto case 3; case 2: Console.WriteLine("In case 2"); goto case 1; case 3: Console.WriteLine("In case 3"); goto default; default: Console.WriteLine("In default"); break; } Console.WriteLine(); } } } } // Output: In case 1 In case 3 In default In case 2 In case 1 In case 3 In default In case 3 In default In default
सामान्यत: switch Statement में हम break Statement का प्रयोग करते हुए Program के Flow को Control करते हैं। लेकिन जैसाकि इस Program द्वारा हम समझ सकते हैं कि goto Statement का प्रयोग करके हम break Statement के स्थान पर goto Statement को भी Use कर सकते हैं।
return Statement
हालांकि return Statement, Program Control को Current Method से फिर से Calling Method में Return करता है। लेकिन क्योंकि ये C# के Methods से सम्बंधित है, जिसके विषय में हमने अभी तक कोई Discussion नहीं किया है, इसलिए इसके विषय में हम तभी समझेंगे, जब हम Methods के बारे में जानेंगे।
इस Section में हमने विभिन्न Control Statements के बारे में बहुत ही संक्षेप में Discuss किया है क्योंकि ये सारे Concepts किसी भी Programming Language के Basic Concepts होते हैं और इस पुस्तक में हम ये मान कर चल रहे हैं कि आपको C/C++ Programming का Basic ज्ञान है।
फिर भी यदि आपको ये Concepts ठीक तरह से समझ में न आए हों, तो आप हमारी पुस्तक “C Programming Language in Hindi” द्वारा इन सभी Concepts को आसानी से समझने योग्य विभिन्न प्रकार के Examples के माध्यम से आसानी से सीख व समझ सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
C#.NET in Hindi | Page:908 | Format: PDF