🔀
Basics

switch Statement

Multiple Choice Branching
💡 switch ek TV remote jaisa hai — ek number dabao, seedha us channel par pahunch jao, bina saare channels check kiye.

switch ek variable ki value ke hisaab se multiple cases mein branch karta hai — jab bahut saari if-else if chains ho, switch usse zyada readable banata hai.

Har case ke end mein break zaroori hai, warna "fall-through" ho jaata hai — agla case bhi chal jaata hai chahe match na kare! Ye C ka ek bahut common gotcha hai (Java mein bhi same behavior hai).

int day = 3;
switch (day) {
  case 1:
    printf("Monday\n");
    break;
  case 2:
    printf("Tuesday\n");
    break;
  case 3:
    printf("Wednesday\n");
    break;
  default:
    printf("Other day\n");
}
🔀
switch ek TV remote jaisa hai — ek number dabao, seedha us channel par pahunch jao, bina saare channels check kiye.
1 / 2
⚡ Quick Recap
  • switch = multiple choice branching, if-else se zyada readable
  • Har case ke end mein break zaroori
  • break bhoolna = fall-through bug
On this page (2 subtopics)

switch tab better hai jab ek hi variable ki multiple specific values check karni ho (jaise menu options 1,2,3,4). if-else zyada flexible hai — ranges, multiple variables, ya complex conditions ke liye better hai (switch sirf exact match karta hai, ranges nahi).

// switch — exact values ke liye achha
switch (choice) {
  case 1: printf("Add\n"); break;
  case 2: printf("Subtract\n"); break;
  default: printf("Invalid\n");
}

// if-else — ranges ke liye zaroori
if (marks >= 90) printf("A\n");
else if (marks >= 60) printf("B\n");

Agar kai cases ka same result chahiye, unhe stack kar sakte ho (bina break ke beech mein) — ye intentional fall-through hai, jo problematic fall-through se alag hai (wo jaan-boojh kar hai, comment ke saath clear karna best practice hai).

switch (day) {
  case 6:
  case 7:
    printf("Weekend!\n");
    break;
  default:
    printf("Weekday\n");
}