खोज…


अगर-एल्स स्टेटमेंट

सामान्य रूप से प्रोग्रामिंग को अक्सर कोड के भीतर एक decision या एक branch आवश्यकता होती है, जिसके लिए कोड अलग-अलग इनपुट या शर्तों के तहत संचालित होता है। C # प्रोग्रामिंग लैंग्वेज (और इस मामले के लिए सबसे प्रोग्रामिंग लैंग्वेज) के भीतर, आपके प्रोग्राम के भीतर ब्रांच बनाने का सबसे सरल और कभी-कभी सबसे उपयोगी तरीका If-Else स्टेटमेंट है।

मान लें कि हमारे पास विधि (उर्फ एक फ़ंक्शन) है जो एक अंतर पैरामीटर लेता है जो 100 तक के स्कोर का प्रतिनिधित्व करेगा, और विधि यह कहकर एक संदेश प्रिंट करेगी कि क्या हम पास या असफल हैं।

static void PrintPassOrFail(int score)
{
    if (score >= 50) // If score is greater or equal to 50
    {
        Console.WriteLine("Pass!");
    }
    else // If score is not greater or equal to 50
    {
        Console.WriteLine("Fail!");
    }
}

जब इस विधि को देखते हुए, आप कोड (की इस पंक्ति देख सकते हैं score >= 50 के अंदर) If बयान। इसे एक boolean स्थिति के रूप में देखा जा सकता है, जहां अगर स्थिति का मूल्यांकन समान true लिए किया जाता true , तो कोड { } if { } बीच होता है।

उदाहरण के लिए, यदि इस विधि को इस तरह कहा जाता था: PrintPassOrFail(60); विधि का आउटपुट एक कंसोल प्रिंट होगा जो पास कह रहा है! चूंकि 60 का पैरामीटर मान 50 से अधिक या बराबर है।

हालांकि, अगर विधि को बुलाया गया था: PrintPassOrFail(30); विधि का आउटपुट फेल कहते हुए छपता है ! । इसका कारण यह है मूल्य 30 से अधिक नहीं इस प्रकार के बीच में कोड है या 50 के बराबर है, else { } के बजाय भाग गया है If बयान।

इस उदाहरण में, हमने कहा है कि स्कोर 100 तक जाना चाहिए, जिसका कोई हिसाब नहीं है। 100 से आगे नहीं जाने वाले स्कोर या संभवतः 0 से नीचे जाने के कारण, इफ-इल्स इफ-एल्स स्टेटमेंट उदाहरण देखें।

इफ-एल्स इफ-एल्स स्टेटमेंट

इफ-एल्स स्टेटमेंट उदाहरण से अनुसरण करने के बाद, अब Else If स्टेटमेंट को पेश करने का समय आ गया है। Else If स्टेटमेंट इफ-एल्स इफ-एल्स स्ट्रक्चर में If स्टेटमेंट के बाद सीधे आता है, लेकिन आंतरिक रूप से If स्टेटमेंट के समान सिंटैक्स होता है। इसका उपयोग कोड से अधिक शाखाओं को जोड़ने के लिए किया जाता है, जो कि एक साधारण इफ़-ईल्स स्टेटमेंट कर सकता है।

इफ-एल्स स्टेटमेंट से उदाहरण में, उदाहरण ने निर्दिष्ट किया कि स्कोर 100 तक जाता है; हालाँकि इसके खिलाफ कभी कोई जाँच नहीं हुई। इसे ठीक करने के लिए, आइफ-एल्स स्टेटमेंट से इस तरह दिखने के लिए विधि को संशोधित करें:

static void PrintPassOrFail(int score)
{
    if (score > 100) // If score is greater than 100
    {
        Console.WriteLine("Error: score is greater than 100!");
    }
    else if (score < 0) // Else If score is less than 0
    {
        Console.WriteLine("Error: score is less than 0!");
    }
    else if (score >= 50) // Else if score is greater or equal to 50
    {
        Console.WriteLine("Pass!");
    }
    else // If none above, then score must be between 0 and 49
    {
        Console.WriteLine("Fail!");
    }
}

ये सभी कथन ऊपर से नीचे तक सभी तरह से चलेंगे जब तक कि कोई शर्त पूरी नहीं हो जाती। विधि के इस नए अपडेट में, हमने सीमा से बाहर जाने वाले स्कोर के लिए समायोजित करने के लिए दो नई शाखाएँ जोड़ी हैं।

उदाहरण के लिए, यदि हम अब अपने कोड में विधि को PrintPassOFail(110); आउटपुट एक कंसोल प्रिंट होगा, जिसमें त्रुटि होगी: स्कोर 100 से अधिक है! ; और अगर हमने अपने कोड में विधि को PrintPassOrFail(-20); , आउटपुट कहेंगे त्रुटि: स्कोर 0 से कम है!

स्टेटमेंट स्विच करें

एक स्विच स्टेटमेंट एक वैरिएबल को मानों की सूची के खिलाफ समानता के लिए परीक्षण करने की अनुमति देता है। प्रत्येक मान को एक केस कहा जाता है, और स्विच किए जा रहे चर को प्रत्येक स्विच केस के लिए जांचा जाता है।

एक switch स्टेटमेंट अक्सर अधिक संक्षिप्त और समझने योग्य होता है if...else if... else.. स्टेटमेंट्स, जब एक एकल वेरिएबल के लिए कई संभावित मानों का परीक्षण करते हैं।

सिंटेक्स इस प्रकार है

switch(expression) {
   case constant-expression:
      statement(s);
      break;
   case constant-expression:
      statement(s);
      break;
  
   // you can have any number of case statements
   default : // Optional
      statement(s);
      break;
}

स्विच स्टेटमेंट का उपयोग करते समय विचार करने वाली सेवारल चीजें हैं

  • स्विच स्टेटमेंट में उपयोग की गई अभिव्यक्ति में एक अभिन्न या प्रगणित प्रकार होना चाहिए, या एक वर्ग प्रकार का होना चाहिए जिसमें कक्षा का अभिन्न या प्रगणित प्रकार का एकल रूपांतरण कार्य होता है।
  • आपके पास स्विच के भीतर किसी भी प्रकार के केस स्टेटमेंट हो सकते हैं। प्रत्येक मामले का मूल्य और एक बृहदान्त्र की तुलना में होता है। प्रत्येक स्विच स्टेटमेंट में अद्वितीय होने के लिए तुलना करने के लिए मान।
  • एक स्विच स्टेटमेंट में एक वैकल्पिक डिफ़ॉल्ट केस हो सकता है। डिफ़ॉल्ट केस का उपयोग किसी कार्य के निष्पादन के लिए किया जा सकता है जब कोई भी मामला सत्य नहीं होता है।
  • प्रत्येक मामले को break कथन के साथ समाप्त करना होगा जब तक कि यह एक खाली कथन न हो। उस मामले में इसके नीचे के मामले में निष्पादन जारी रहेगा। ब्रेक स्टेटमेंट को तब भी छोड़ा जा सकता है जब return , throw या goto case स्टेटमेंट का उपयोग किया जाता है।

उदाहरण ग्रेड वार के साथ दिया जा सकता है

char grade = 'B';

switch (grade)
{
    case 'A':
        Console.WriteLine("Excellent!");
        break;
    case 'B':
    case 'C':
        Console.WriteLine("Well done");
        break;
    case 'D':
        Console.WriteLine("You passed");
        break;
    case 'F':
        Console.WriteLine("Better try again");
        break;
    default:
        Console.WriteLine("Invalid grade");
        break;
}

यदि कथन की स्थिति मानक बूलियन अभिव्यक्ति और मूल्य हैं

निम्नलिखित कथन

if (conditionA && conditionB && conditionC) //...

के बराबर है

bool conditions = conditionA && conditionB && conditionC;
if (conditions) // ...

दूसरे शब्दों में, "अगर" कथन के अंदर स्थितियां सिर्फ एक साधारण बूलियन अभिव्यक्ति बनाती हैं।

सशर्त बयान लिखते समय एक आम गलती स्पष्ट रूप से true और false तुलना करना true :

if (conditionA == true && conditionB == false && conditionC == true) // ...

इसे फिर से लिखा जा सकता है

if (conditionA && !conditionB && conditionC)


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow