Switch-case statements: break and default

switch सीधे उस case पर कूदता है जो किसी int या char value से मेल खाता है, break execution को अगले case में गिरने से रोकता है, और default हर बिना-मेल वाले को पकड़ता है, menus के लिए ख़ास बना औज़ार।

10 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

Menu वाली समस्या

Marks program अब एक app बनता जा रहा है, और apps में menus होते हैं:

1. View marks

2. View percentage

3. View grade

4. Exit

एक if-else ladder इसे सँभाल सकती है: if choice 1 है... else if 2... पर वह दफ़्तरी काग़ज़ की तरह पढ़ी जाती है, और हर rung choice को फिर से जाँचता है।

"सीधे MERE option पर कूदो" के लिए C एक ख़ास बना औज़ार रखता है: switch-case, अपने 2 मशहूर साथियों break और default के साथ।

Theory

Lift, सीढ़ी नहीं

if-else ladder एक सीढ़ी है: अपनी मंज़िल से नीचे की हर मंज़िल पार कीजिए, हर एक पर एक सवाल का जवाब देते हुए। switch एक lift है: 3 दबाइए, सीधे मंज़िल 3 पर पहुँचिए। पर इस lift की एक ख़ासियत है: इसके दरवाज़े आपके पीछे बंद नहीं होते। जब तक आप stop button (break) न दबाएँ, आप चलते हुए मंज़िल 4 में, फिर 5 में घुस जाते हैं... और जो button किसी मंज़िल से मेल न खाए, उसके लिए lift के पास एक बचाव-landing है: default।

Practical

Marks का menu

#include <stdio.h>

int main() {
    int choice, marks = 78;
    printf("1.Marks 2.Percentage 3.Grade : ");
    scanf("%d", &choice);

    switch (choice) {
        case 1:
            printf("Marks: %d\n", marks);
            break;
        case 2:
            printf("Percentage: %.2f\n", marks * 100.0 / 100);
            break;
        case 3:
            printf("Grade: %c\n", marks >= 70 ? 'A' : 'B');
            break;
        default:
            printf("Invalid choice\n");
    }
    return 0;
}

This example runs in Gri-Learn on the web, where you can edit it and see the output.

Theory

Lift के नियम

  • switch (expression): expression एक integer type होना चाहिए (int या char; chars चलते हैं क्योंकि वे ASCII numbers हैं)। कभी float नहीं, और कभी string नहीं।
  • case CONSTANT:: labels constants होने चाहिए: case 1:, case 'A':। case marks >= 35: जैसी condition illegal है, switch VALUES से मेल खाता है, ranges नहीं जाँचता।
  • break;: switch से बाहर निकलता है। इसके बिना execution अगले case के code में गिर जाता है, matching रुक जाती है पर चलना नहीं।
  • default:: तब चलता है जब कुछ मेल न खाए, C का "इनमें से कोई नहीं"। जगह लचीली है; अंत में रखना रिवाज है।

Quiz

Menu code में मान लीजिए case 1 में break नहीं था। User 1 डालता है। क्या print होता है?

  1. Marks AUR Percentage: execution case 2 में उसके break तक गिरता है
  2. सिर्फ़ Marks: cases अपने आप ख़त्म होते हैं
  3. Compile error: break ज़रूरी है
  4. Invalid choice
Show the answer

Marks AUR Percentage: execution case 2 में उसके break तक गिरता है

Matching एक बार होती है, पर break के बिना code अगले case के statements में CHALTA रहता है, सिर्फ़ case 2 के break पर रुकता है। Fall-through legal C है (कभी-कभी जान-बूझकर इस्तेमाल होता है), इसीलिए compiler ख़ामोश रहता है और इसीलिए break-भूलकर-predict-output दुनिया का सबसे दोहराया गया switch सवाल है।

Think first

switch grade क्यों नहीं दे सकता

एक student कोशिश करता है: switch (marks) { case marks >= 70: ... }। यह compile नहीं होगा। Lift वाली तस्वीर से तर्क कीजिए कि KYON, और grading का सही औज़ार बताइए।

Show the answer

Lift के buttons तय मंज़िल नंबर हैं, सवाल नहीं: switch अपनी value की तुलना CONSTANT labels से करता है, इसलिए case marks >= 70: (एक condition, और constant नहीं) illegal है। Ranges सीढ़ी का काम हैं: पिछले lesson की if-else ladder grade देती है; switch menu देता है। Exam के लिए एक line: switch exact values से मेल खाता है; if ranges और conditions सँभालता है।

Watch out

Marks कहाँ कटते हैं

भूले हुए breaks: वही अमर fall-through, predict-output के सवालों में हर case trace कीजिए। float पर switch (switch (percentage)): illegal, सिर्फ़ integer types। conditions को case labels बनाना: illegal, सिर्फ़ constants। और menu programs में default मत भूलिए; examiners invalid-input handling ढूँढते हैं, और वह एक line के आसान marks हैं।

Theory

दोनों selectors में से चुनना

आपकी decision toolkit अब पूरी है: ranges के लिए ladder, menus के लिए switch, और दोनों असली programs में साथ दिखते हैं (एक switch menu जिसके case 3 में grading ladder हो, बिल्कुल आज के code जैसा)। जो दोनों नहीं कर सकते वह है दोहराना: 60 students process करना मतलब 60 बार manual run। दोहराव, structured-programming का तीसरा आकार, आगे आता है: while, do-while और for।

Summary

Key takeaways

  • switch सीधे उस case पर कूदता है जो किसी int/char value से मेल खाता है।
  • case labels सिर्फ़ constants हैं: न floats, न conditions, न ranges।
  • break switch से बाहर निकलता है; इसके बिना execution अगले case में GIR जाता है।
  • default बिना-मेल वाली values पकड़ता है, इनमें-से-कोई-नहीं वाली branch।
  • switch exact-match menus के लिए; if-else ladder ranges के लिए।
  • याद रखने का hook: वह lift जिसके दरवाज़े ख़ुद कभी बंद नहीं होते।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Decision Making and Iterative statements

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Switch-case statements: break and default · Computer Programming and Programming Methodology (CPPM) · Gri-Learn