Lesson 5 — Beginner
Conditionals (if/else/switch)
Program ko decision lena aata hi nahi toh wo sirf ek line repeat kar sakta hai. Is lesson mein hum seekhenge if/else se conditions, else-if ladder se grades, aur switch se menu-style decisions kaise likhte hain — real programs ke saath.
if-else basics
WHAT
if condition check karta hai — true (non-zero) ho toh if ka block chalta hai, warna else ka. C mein har condition 0/1 mein convert hoti hai: 0 = false, baaki sab true.
WHEN
Pass/fail check, permission check, input validate karne — jab bhi program ko "agar ye ho toh wo, warna ye" sochna ho.
WHERE
Har jagah — menu choices, validation, loops ki conditions, error handling. Programming ki pehli "smartness" yahin se aati hai.
#include <stdio.h>
int main() {
int marks = 75;
if (marks >= 33) {
printf("Pass\n");
} else {
printf("Fail\n");
}
return 0;
}
Output: Pass
- Condition ek expression hai: x > 5, x != 0, ch, a && b — sab chalenge.
- else optional hai: sirf if bhi chalega jab "kuch nahi karna" ho.
- Ek statement ho toh braces chhod sakte ho — lekin hamesha lagao (dangling else se bachaa).
- if (x = 5) — assignment, hamesha true! Comparison mein ==.
else-if ladder — grades wala program
#include <stdio.h>
int main() {
int marks = 82;
char grade;
if (marks >= 90) grade = 'A';
else if (marks >= 75) grade = 'B';
else if (marks >= 60) grade = 'C';
else if (marks >= 33) grade = 'D';
else grade = 'F';
printf("Marks=%d Grade=%c\n", marks, grade);
return 0;
}
Output: Marks=82 Grade=B
Order matter karta hai. Agar pehle (marks >= 33) likh dete toh 82 pe hi D mil jaata. Hamesha strict condition (90) se shuru karo, dheere-dheere chhoti karo.
switch-case — menu style decisions
#include <stdio.h>
int main() {
int day = 3;
switch (day) {
case 1: printf("Monday\n"); break;
case 2: printf("Tuesday\n"); break;
case 3: printf("Wednesday\n"); break;
case 4: printf("Thursday\n"); break;
default: printf("Invalid day\n");
}
return 0;
}
Output: Wednesday
- Switch value integral honi chahiye: int, char, enum — float/double nahi.
- break zaroori hai: warna ek case ka baad agla case bhi chalta hai (fall-through).
- default optional hai — kuch match na ho tab chalta hai (aakhri mein rakho).
- Case values constant honi chahiye (5, 'A') — variable nahi. Aur duplicate case = compile error.
// Fall-through ka maza (bina break):
int n = 2;
switch (n) {
case 1: printf("one ");
case 2: printf("two "); // break nahi — ghusta rehta
case 3: printf("three ");
}
// Output: two three (2 se shuru, 3 tak chala!)
Ternary, nesting aur safe patterns
int a = 10, b = 20;
int max = (a > b) ? a : b; // 20
printf("%s", (a == 10) ? "dus" : "aur"); // dus
// Nested if — chhota example
if (a > 0) {
if (a > 10) printf("bada positive\n");
else printf("chhota positive\n");
}
// Nested ternary (padhna mushkil — kam use karo)
int r = (x > 90) ? 4 : (x > 75) ? 3 : 2;
- Operator precedence check: a > b ? a : b chalega, par && ke saath brackets lagao — (a > 0 && b > 0) ? ... warna && pehle chal jaata hai.
- Best practice: chhoti condition = ternary, lambi logic = if-else. Readability sabse upar.
- goto se door raho: jump karta hai par flow kharab karta hai — aaj kal sirf error cleanup (out of loop) mein limited use.
- if-else if chain: teen se zyada choices ho toh ladder hi best hai.
Exercise
Question: Switch mein case ke baad kaunsa statement lagta hai taaki ek case doosre mein na ghuse?
Question: Comparison ke liye kaunsa operator — = ya ==?
Question: if (marks >= 33) mein >= ka matlab kya hai? (bada ya barabar / sirf bada)
Question: Switch mein case ki values kaisi honi chahiye — constant ya variable?
Common mistakes
- Break bhool jaana switch mein: Bina break ke fall-through — ek case ke baad saare agle case chalte rehte hain. Output questions mein ye sabse common trap hai.
- Ladder ka order ulta rakhna: if (marks >= 33) pehle likh diya toh 90 wale ko bhi D milega. Hamesha sabse strict condition pehle.
- Dangling else: Braces ke bina else kisi aur if se jud jaata hai (nearest se). Nesting mein hamesha braces likho — bug chhupta hai.
Canteen menu bhi switch jaisa hai — item number daalo, uska order ban jaata hai. Poori ladder ki zarurat nahi:
#include <stdio.h>
int main() {
int item = 2;
switch (item) {
case 1: printf("Chai = Rs 10\n"); break;
case 2: printf("Samosa = Rs 20\n"); break;
case 3: printf("Idli = Rs 30\n"); break;
default: printf("Item nahi hai\n");
}
return 0;
}
Output: Samosa = Rs 20- TCS NQT: switch fall-through wale output questions — 1Q pakka.
- College exam: grade calculator / simple menu program likhwana.
- Interview: if-else vs switch — kab kaun use karo (performance + readability).
- Trap: "switch float chala sakta hai" — galat, integral type hi chalti hai.
Conditionals clear — Module 1 complete! Ab Module 2 — Loops — mein dekhenge ek hi kaam baar baar kaise karate hain.