Conditional Statements in C (if , if..else, Nested if, if-else-if )

“हेल्लो दोस्तों! इस पोस्ट में हम ‘C प्रोग्रामिंग’ में उपयोग होने वाले Conditional Statements (if-else, switch-case) के बारे में उदाहरण सहित पढ़ेंगे। Conditional Statements किसी भी Programming का महत्वपूर्ण हिस्से हैं जो आपके Code को अधिक गतिशील (dynamic) और लचीला (flexible) बनाते हैं।

1. Conditional Statements

C प्रोग्रामिंग में Conditional Statements का उपयोग किसी शर्त के आधार पर निर्णय लेने के लिए किया जाता है। Conditional Statements को (Decision Making / Decision Control Structure) के नाम से भी जाना जाता है। यह तय करते हैं कि किस Condition में कौन सा code चलेगा, यदि शर्त सही (true) होती है, तो एक ब्लॉक कोड निष्पादित किया जाता है; अन्यथा, दूसरा ब्लॉक कोड निष्पादित किया जा सकता है।

C प्रोग्रामिंग में Conditional Statements निम्नलिखित हैं:

  • if Statements
  • if-else Statements
  • Nested if Statement
  • Conditional Operator
  • Jump Statements: 
    • break
    • continue
    • goto
    • return

1. if Statements

if स्टेटमेंट का उपयोग किसी Condition की जाँच करने के लिए किया जाता है। यदि शर्त सही होती है, तो कोड ब्लॉक Execute होता है।

Syntax

if (condition) {
    // यदि Condition सही है, तो यह Code चलेगा
}

Example

#include <stdio.h>

int main() {
    int num = 10;

    if (num > 5) {
        printf("संख्या 5 से बड़ी है\n");
    }

    return 0;
}

2. if-else Statements

if-else Statement का उपयोग तब किया जाता है जब हमें किसी Condition के सही या गलत होने पर अलग-अलग Code Blocks Execute करने होते हैं।

Syntax

if (शर्त) {
    // अगर condition सही हो, तो यह code चलेगा
} else {
    // अगर condition गलत हो, तो यह code चलेगा
}

Example

int age = 18;
if (age >= 18) {
    printf("आप वोट देने के योग्य हैं।");
} else {
    printf("आप वोट देने के योग्य नहीं हैं।");
}

3. if-else if-else Statements

if-else if-else स्टेटमेंट का उपयोग कई शर्तों (condition) की जाँच के लिए किया जाता है। जब एक Condition सही हो जाती है, तो Related कोड ब्लॉक Execute होता है और बाकी condition को अनदेखा कर दिया जाता है।

Syntax

if (condition1) {
    // यदि condition1 सही (true) है, तो यह ब्लॉक चलेगा
    // कोड यहाँ
}
else if (condition2) {
    // यदि condition1 गलत है और condition2 सही है, तो यह ब्लॉक चलेगा
    // कोड यहाँ
}
else {
    // यदि दोनों conditions गलत हैं, तो यह ब्लॉक चलेगा
    // कोड यहाँ
}

Example

#include <stdio.h>

int main() {
    int num;
    
    // उपयोगकर्ता से अंक प्राप्त करना
    printf("कृपया एक अंक दर्ज करें: ");
    scanf("%d", &num);
    
    // if-else if-else स्टेटमेंट्स
    if (num > 0) {
        printf("यह अंक सकारात्मक (positive) है।\n");
    }
    else if (num < 0) {
        printf("यह अंक नकारात्मक (negative) है।\n");
    }
    else {
        printf("यह अंक शून्य (zero) है।\n");
    }
    
    return 0;
}

यह कोड तीन स्थितियों की जाँच करता है: संख्या धनात्मक, ऋणात्मक या शून्य।

4. Nested If Statements

नेस्टेड if स्टेटमेंट का उपयोग तब किया जाता है जब हम एक if स्टेटमेंट के अंदर दूसरा if स्टेटमेंट लिखना चाहते हैं। इसका उपयोग अधिक जटिल निर्णय लेने के लिए किया जा सकता है।

Syntax

if (condition1) {
    // यदि condition1 सही है, तो यह ब्लॉक चलेगा
    if (condition2) {
        // यदि condition2 भी सही है, तो यह ब्लॉक चलेगा
        // कोड यहाँ
    }
    else {
        // यदि condition2 गलत है, तो यह ब्लॉक चलेगा
        // कोड यहाँ
    }
}
else {
    // यदि condition1 गलत है, तो यह ब्लॉक चलेगा
    // कोड यहाँ
}

Example

#include <stdio.h>

int main() {
    int age;
    
    // उपयोगकर्ता से उम्र प्राप्त करना
    printf("कृपया अपनी उम्र दर्ज करें: ");
    scanf("%d", &age);
    
    // Nested if statement
    if (age >= 18) {
        printf("आप वयस्क हैं।\n");
        
        // यदि वयस्क हैं, तो यह चेक करें कि वोट देने का अधिकार है या नहीं
        if (age >= 21) {
            printf("आप 21 के हैं।\n");
        }
        else {
            printf("आप 21 के नहीं हैं।\n");
        }
    }
    else {
        printf("आप नाबालिग हैं।\n");
    }
    
    return 0;
}

इस कोड में, सबसे पहले यह जाँचता है कि संख्या धनात्मक (Negative Number) है या नहीं, फिर यह जाँचता है कि वह सम (Even) है या विषम (Odd)

4. Conditional Operator – Ternary Operator ( ? : )

C भाषा में टर्नरी ऑपरेटर (? :) का उपयोग शॉर्टहैंड if-else स्टेटमेंट के रूप में किया जाता है। यह एक Conditional Operator है जो एक ही लाइन में निर्णय लेने की प्रक्रिया को पूरा करता है। इसे टर्नरी इसलिए कहा जाता है क्योंकि इसमें तीन ऑपरेटेंड्स होते हैं: एक शर्त, यदि शर्त सही हो तो निष्पादित होने वाला मूल्य, और यदि शर्त गलत हो तो निष्पादित होने वाला मूल्य।

Syntax

condition ? value_if_true : value_if_false;

यहाँ,

  • शर्त: वह कंडीशन है जिसका मूल्यांकन true (सही) या false (गलत) के रूप में किया जाता है।
  • मान1: यह वह मान है जो तब लौटाया जाता है जब शर्त सही होती है।
  • मान2: यह वह मान है जो तब लौटाया जाता है जब शर्त गलत होती है।

टर्नरी ऑपरेटर का काम करने का तरीका

  • अगर शर्त सही है, तो मान1 को परिणाम के रूप में लौटाया जाएगा।
  • अगर शर्त गलत है, तो मान2 को परिणाम के रूप में लौटाया जाएगा।

Example

#include<iostream>
using namespace std;

int main() {
    int number = -5;
    
    // Ternary Operator का उपयोग
    string result = (number >= 0) ? "Positive (+)" : "Negative (-)";
    
    cout << "The no. is:-  " << result << endl;
    
    return 0;
}

टर्नरी ऑपरेटर के लाभ

  1. संक्षिप्तता: कोड को अधिक संक्षिप्त और पढ़ने में आसान बनाता है।

टर्नरी ऑपरेटर के उपयोग में सावधानियाँ

  • टर्नरी ऑपरेटर को बहुत जटिल या नेस्टेड रूप में उपयोग करने से बचना चाहिए, क्योंकि इससे कोड की पठनीयता में कमी आ सकती है।
  • इसका उपयोग तभी करना चाहिए जब कोड की सादगी बनाए रखी जा सके।

टर्नरी ऑपरेटर का सही उपयोग कोड को सरल और प्रभावी बनाता है, जिससे निर्णय लेने की प्रक्रिया तेज और स्पष्ट हो जाती है।

2. Jump Statements: 

C भाषा में Jump Statements का उपयोग program के control को transfer करने के लिए किया जाता है। ये statement program के सामान्य code को तोड़कर किसी अन्य स्थान पर jump करने की अनुमति देते हैं। C programming में मुख्य रूप से 4 Jump Statements होते हैं: goto, continue, break और return. आइए इन्हें हिंदी में विस्तार से समझते हैं।

1. break Statements

break Statements का उपयोग लूप (for, while, do-while) या switch केस से बाहर निकलने के लिए किया जाता है। जब break स्टेटमेंट का सामना होता है, तो लूप या switch समाप्त हो जाता है और नियंत्रण तुरंत लूप के बाद के कोड पर स्थानांतरित हो जाता है।

Example

#include <stdio.h>
int main() {
    int i;

    // for loop
    for (i = 1; i <= 10; i++) {
        if (i == 5) {
            break;  // जब i 5 हो, लूप को तोड़ दो
        }
        printf("%d\n", i);
    }

    printf("Loop Ended\n");
    return 0;
}

इस उदाहरण में, जब i की वैल्यू 5 हो जाती है, तो break स्टेटमेंट के कारण लूप से बाहर आ जाता है और लूप समाप्त हो जाता है।

2. continue Statements

continue स्टेटमेंट का उपयोग Loop के वर्तमान पुनरावृत्ति को छोड़ने और अगले पुनरावृत्ति पर जाने के लिए किया जाता है। यह लूप को समाप्त नहीं करता, बल्कि केवल वर्तमान पुनरावृत्ति को छोड़ देता है।

Example

#include <stdio.h>
int main() {
    int i;

    // for loop
    for (i = 1; i <= 10; i++) {
        if (i == 5) {
            continue;  // जब i 5 हो, तो उसे स्किप कर अगले इटरेशन पर जाएं
        }
        printf("%d\n", i);
    }

    return 0;
}

इस उदाहरण में, जब i की वैल्यू 5 होती है, तो continue स्टेटमेंट वर्तमान पुनरावृत्ति को छोड़ देता है और अगले पुनरावृत्ति पर जाता है। इसलिए, 5 को प्रदर्शित नहीं किया जाएगा।

3. goto Statements

goto स्टेटमेंट का उपयोग किसी विशेष लेबल पर प्रोग्राम नियंत्रण को सीधे स्थानांतरित करने के लिए किया जाता है। यह प्रोग्राम के फ्लो को Jump कराता है और किसी भी स्थान पर जाने की अनुमति देता है, लेकिन इसका उपयोग सावधानीपूर्वक किया जाना चाहिए, क्योंकि यह प्रोग्राम की पठनीयता को प्रभावित कर सकता है।

Example

#include <stdio.h>
int main() {
    int i = 0;

    // Loop for printing numbers
    start:
        if (i == 5) {
            goto end;  // जब i 5 हो, तो 'end' label पर कूद जाओ
        }
        printf("%d\n", i);
        i++;
        goto start;  // 'start' label पर वापस कूद जाओ

    end:
        printf("Loop Ended\n");

    return 0;
}

इस कोड में, goto स्टेटमेंट start लेबल पर जंप करता है और लूप की तरह कार्य करता है।

4. return Statements

return स्टेटमेंट का उपयोग किसी फ़ंक्शन से नियंत्रण को वापस करने के लिए किया जाता है। यह वैल्यू को वापस भी कर सकता है, अगर function का प्रकार void के अलावा कुछ और हो। यह मुख्यतः फ़ंक्शन को समाप्त करने के लिए उपयोग किया जाता है।

Example

#include <stdio.h>

// add फ़ंक्शन का परिभाषा जो दो संख्याओं का जोड़ करता है
int add(int a, int b) {
    return a + b;  // जोड़ का परिणाम लौटाते हैं
}

int main() {
    int x1 = 5, y2 = 10;
    int result;

    // add फ़ंक्शन को कॉल करें और परिणाम को result में स्टोर करें
    result = add(x1, y2);

    // परिणाम को प्रिंट करें
    printf("The sum is: %d\n", result);

    return 0;  // मुख्य फ़ंक्शन से वापस लौटना
}

इस कोड में, add फ़ंक्शन दो संख्याओं का जोड़ करता है और return स्टेटमेंट का उपयोग करके परिणाम को मुख्य फ़ंक्शन में लौटाता है।

सारांश:

  • If-else: Condition के आधार पर Decision लेने के लिए।
  • Switch-case: एक से अधिक value के आधार पर decision लेने के लिए।
  • For: पूर्व-निर्धारित संख्या में दोहराव के लिए।
  • While: शर्त के अनुसार दोहराव के लिए।
  • Do-while लूप: कम से कम एक बार Loop/Code चलाने के लिए।
  • Break स्टेटमेंट: लूप या Switch case से तुरंत बाहर निकलने के लिए।
  • Continue स्टेटमेंट: Loop के बाकी हिस्से को छोड़ने और अगले condition पर जाने के लिए।

Leave a comment