C Language else-if Ladder के साथ C Programming में decision लेने की कला को आसान और मजेदार तरीके से सीखें। इस tutorial में C Language else-If Ladder का Syntax, आसान Example और Real-Life Programs शामिल हैं, जो beginners से लेकर Advanced Programmers तक सभी के लिए Perfect हैं। Coding को प्रैक्टिकल और समझने में आसान बनाने वाला यह एकदम बेहतरीन हिंदी Guide है।
C Programming में, हमें अक्सर ऐसी स्थिति का सामना करना पड़ता है जहाँ हमें कई अलग-अलग शर्तों (multiple different conditions) के आधार पर निर्णय लेना होता है। यह सिर्फ ‘हाँ’ या ‘ना’ (true or false) का मामला नहीं होता, बल्कि ‘Option A’, ‘Option B’, ‘Option C’ और ऐसे कई विकल्प चुनने का मामला होता है।
इस तरह के जटिल निर्णय लेने के लिए, C हमें एक शानदार सुविधा देता है जिसे else-if Ladder (सीढ़ी) कहा जाता है। इसे एक ऐसी सीढ़ी की तरह समझें, जहाँ Program एक-एक करके हर Condition को चेक करता है, और जिस पहले Condition पर उसे सही शर्त (True condition) मिलती है, वह वहीं रुककर उस काम को पूरा करता है।
Table of Contents
else-if Ladder क्या है?
else-if Ladder एक Decision-Making Statement (निर्णय लेने वाला कथन) है जिसका उपयोग तब किया जाता है जब हमें एक ही समय में दो से अधिक स्थितियों की जाँच करनी होती है और उनमें से केवल एक Code ब्लॉक को Execute करना होता है।
यह एक चेन (श्रृंखला) के रूप में काम करता है:
- सबसे पहले, यह if की शर्त (condition) को चेक करता है।
- अगर if की शर्त False (गलत) होती है, तो यह तुरंत अगली else if की शर्त को चेक करता है।
- यह प्रक्रिया एक-एक करके नीचे की ओर जाती है, और प्रोग्राम तब तक हर else if की शर्त को चेक करता रहता है, जब तक उसे कोई शर्त True (सही) नहीं मिल जाती।
- जैसे ही कोई शर्त True मिलती है, उस else if ब्लॉक के अंदर का Code Execute हो जाता है।
- कोड execute होने के बाद, पूरा Ladder समाप्त हो जाता है (यानी, बाकी की शर्तें चेक नहीं होती हैं)।
- अगर कोई भी शर्त True नहीं मिलती है, तो आखिर में मौजूद else ब्लॉक (जो कि Opetional है) Execute होता है।
else-if Ladder का Syntax
else-if Ladder को इस तरह लिखा जाता है:
if (condition1) {
// Statements for condition1 (अगर condition1 True है तो यह code चलेगा)
}
else if (condition2) {
// Statements for condition2 (अगर condition1 False है, लेकिन condition2 True है तो यह code चलेगा)
}
else if (condition3) {
// Statements for condition3 (अगर condition1 और condition2 False हैं, लेकिन condition3 True है तो यह code चलेगा)
}
// ... और भी else if block हो सकते हैं
else {
// Statements for else (अगर ऊपर की कोई भी condition True नहीं है, तो यह code चलेगा)
}
प्रमुख भाग (Key Components):
- if (condition): यह Ladder की शुरुआत है। यह पहली और सबसे महत्वपूर्ण शर्त होती है।
- else if (condition): ये Ladder के मध्य भाग हैं। आप अपने Program की ज़रूरत के हिसाब से कई else if ब्लॉक जोड़ सकते हैं।
- else: यह Ladder का अंतिम और वैकल्पिक (optional) भाग है। यह तब काम करता है जब if और सभी else if की शर्तें False हो जाती हैं। यह एक तरह का Catch-all ब्लॉक होता है।
Example 1: Student के अंकों के आधार पर Grade तय करना
यह एक क्लासिक उदाहरण है, जहाँ हमें छात्र के अंकों (Marks) के आधार पर उसका Grade तय करना होता है।
| अंक (Marks) | ग्रेड (Grade) |
| 90 या उससे ऊपर | A |
| 80 से 89 तक | B |
| 70 से 79 तक | C |
| 60 से 69 तक | D |
| 60 से कम | F (Fail) |
#include <stdio.h>
int main() {
int marks;
printf("Please enter your marks (0 to 100): "); // Marks Enter करने का संदेश
scanf("%d", &marks);
// 1. Check the highest condition first (सबसे पहले सबसे बड़ी शर्त चेक करें)
if (marks >= 90) {
printf("Excellent! You got 'A' grade.\n"); // Output for A grade (A ग्रेड के लिए Output)
}
// 2. If first condition is false, check next one (पहली शर्त false होने पर अगली चेक करें)
else if (marks >= 80) {
printf("Very Good! You got 'B' grade.\n"); // Output for B grade (B ग्रेड के लिए Output)
}
// 3. If this is also false, check next (अगर यह भी false है तो अगली चेक करें)
else if (marks >= 70) {
printf("Good! You got 'C' grade.\n"); // Output for C grade (C ग्रेड के लिए Output)
}
// 4. Continue checking remaining conditions (बाकी शर्तें चेक करते रहें)
else if (marks >= 60) {
printf("Just Passed! You got 'D' grade.\n"); // Output for D grade (D ग्रेड के लिए Output)
}
// 5. If none of the above are true, execute else (अगर ऊपर की कोई भी शर्त true नहीं है तो else चलेगा)
else {
printf("Sorry! You got 'F' grade. You need to work harder.\n"); // Output for F grade (F ग्रेड के लिए Output)
}
printf("Grading process completed.\n"); // End message (ग्रेडिंग प्रक्रिया समाप्त)
return 0;
}
Code Explanation:
- मान लीजिए यूजर ने 85 अंक Enter किये।
- if (marks >= 90): False है।
- else if (marks >= 80): True है।
- यह शर्त True होते ही, Very Good! You got ‘B’ grade. प्रिंट होगा।
- इसके बाद, प्रोग्राम नीचे के else if और else ब्लॉक को चेक ही नहीं करेगा और सीधे printf(“Grading process completed.\n”); पर चला जाएगा।
- अगर यूजर ने 55 अंक Enter किए, तो ऊपर की सभी शर्तें False हो जाएँगी, और अंत में else ब्लॉक execute होगा।
Example 2: Week Day पता करना
यहाँ हम एक Number के आधार पर Week Day प्रिंट करेंगे।
#include <stdio.h>
int main() {
int day_number;
printf("Enter the day number of the week (1-7): "); // Ask user for input (User से दिन संख्या पूछें)
scanf("%d", &day_number);
// Check which day corresponds to the given number (दिए गए नंबर के अनुसार दिन जांचें)
if (day_number == 1) {
printf("Today is Monday.\n"); // Output for Monday (सोमवार के लिए Output)
}
else if (day_number == 2) {
printf("Today is Tuesday.\n"); // Output for Tuesday (मंगलवार के लिए Output)
}
else if (day_number == 3) {
printf("Today is Wednesday.\n"); // Output for Wednesday (बुधवार के लिए Output)
}
else if (day_number == 4) {
printf("Today is Thursday.\n"); // Output for Thursday (गुरुवार के लिए Output)
}
else if (day_number == 5) {
printf("Today is Friday.\n"); // Output for Friday (शुक्रवार के लिए Output)
}
else if (day_number == 6) {
printf("Today is Saturday.\n"); // Output for Saturday (शनिवार के लिए Output)
}
else if (day_number == 7) {
printf("Today is Sunday. It's a holiday!\n"); // Output for Sunday (रविवार के लिए Output - छुट्टी का दिन)
}
else {
printf("Invalid day number! Please enter a value between 1 and 7.\n"); // Error message (गलत दिन संख्या के लिए संदेश)
}
return 0;
}
इस Example में:
- हमने 7 अलग-अलग संभावनाओं को 7 if और else if की मदद से कवर किया है।
- अगर यूजर 1 से 7 के बाहर कोई नंबर (जैसे 10) Enter करता है, तो else ब्लॉक काम करेगा, और Invalid day number! Please enter a value between 1 and 7. Message प्रिंट करेगा।
C language else if ladder Flowchart
अब हम C Language else-if ladder को एक flowchart के माध्यम से समझते हैं। इस flowchart में आप देख पाएंगे कि कैसे Program एक Condition को चेक करता है, फिर उसके Result के आधार पर अगला Step चुनता है। इससे आपको Decision-Making Process को समझने में आसानी होगी।

else-if Ladder के उपयोग के नियम (Rules for Using the Ladder)
- शुरुआत if से: Ladder हमेशा एक अकेले if स्टेटमेंट से शुरू होना चाहिए।
- बीच में else if: if और else के बीच आप जितने चाहें उतने else if स्टेटमेंट का उपयोग कर सकते हैं।
- अंत में else (Optional): else ब्लॉक हमेशा अंत में आता है और यह Optional है। अगर आप else नहीं लिखते हैं, और कोई भी शर्त True नहीं होती है, तो Program बस Ladder को छोड़कर आगे बढ़ जाएगा।
- पहला True, बाकी Ignore: जैसे ही पहली शर्त True होती है, उस ब्लॉक का कोड execute होता है और प्रोग्राम बाकी की सभी else if और else शर्तों को नज़रअंदाज़ (ignore) कर देता है। सिर्फ एक ब्लॉक ही execute होता है।
else-if Ladder कब इस्तेमाल करें?
if-else if-else Ladder का उपयोग सबसे अच्छा तब होता है जब:
- Multi-Way Decisions: आपके पास दो से अधिक Option हों।
- Mutually Exclusive Conditions: आपकी सभी शर्तें परस्पर अनन्य (Mutually Exclusive) हों, जिसका मतलब है कि एक बार में उनमें से केवल एक ही True हो सकती है। (जैसे, कोई छात्र 90% और 80% दोनों एक साथ नहीं ला सकता, वह या तो 90% या 80% होगा।
- Range Checking: आपको किसी Variable के मान की अलग-अलग सीमाएँ (Ranges) चेक करनी हों (जैसा कि हमने Grade वाले उदाहरण में देखा)।
else-if Ladder C Program में निर्णय लेने की शक्ति को सरल, व्यवस्थित और कुशल (efficient) तरीके से संभालता है। यह आपको Complecated Logic को साफ-सुथरे ढंग से व्यक्त करने की अनुमति देता है।
Difference Between if else and else if ladder in C
| if else | c language else if Ladder |
| सिर्फ दो conditions handle करता है | multiple conditions handle कर सकता है |
| Simple decision making | Step-by-step multi-decision making |
else-if Ladder में आम गलतियाँ (Common Mistakes)
1. Conditions का गलत Order
यह सबसे बड़ी और आम गलती है, खासकर जब हम सीमाएँ (ranges) चेक कर रहे हों।
अगर हम छोटी (Smallest) शर्तों को बड़ी (Largest) शर्तों से पहले रखते हैं, तो हमारा Logic टूट सकता है। चूँकि Ladder केवल पहली True शर्त को Execute करता है और फिर बाहर निकल जाता है, अगर छोटी Range पहले True हो जाती है, तो बड़ी Range कभी चेक ही नहीं हो पाएगी।
उदाहरण:
मान लीजिए हम 60 से ऊपर वालों को ‘Pass’ और 80 से ऊपर वालों को ‘Distinction’ देना चाहते हैं।
// गलत क्रम
if (marks >= 60) {
printf("Pass\n"); // अगर marks 85 हुए तो यह True हो जाएगा
}
else if (marks >= 80) {
printf("Distinction\n"); // यह line कभी execute नहीं होगी (Unreachable Code)
}
अगर किसी छात्र के अंक 85 हैं, तो पहली शर्त (marks >= 60) True हो जाएगी। प्रोग्राम “Pass” प्रिंट करके Ladder से बाहर निकल जाएगा, और वह “Distinction” के लायक होते हुए भी यह ग्रेड नहीं पा सकेगा।
सही तरीका:
हमेशा बड़ी रेंज को छोटी रेंज से पहले चेक करें।
// सही क्रम
if (marks >= 80) {
printf("Distinction\n");
}
else if (marks >= 60) {
printf("Pass\n");
}
अगर अंक 85 हैं:
- if (marks >= 80) “Distinction” प्रिंट होगा।
- प्रोग्राम बाहर निकल जाएगा। (सही Result)
अगर अंक 65 हैं:
- if (marks >= 80) False है।
- else if (marks >= 60) True है। “Pass” प्रिंट होगा।
- प्रोग्राम बाहर निकल जाएगा। (सही Result)
2. Conditions को Overlapping करना
यह गलती तब होती है जब आपकी शर्तें इस तरह से लिखी जाती हैं कि वे एक-दूसरे को काटती (overlap) हैं, खासकर जब आप && (AND) ऑपरेटर का उपयोग करना भूल जाते हैं।
ऊपर दिए गए उदाहरण में हमने शर्तों के क्रम से इसे हल कर लिया। लेकिन अगर आप else-if की बजाय सिर्फ लगातार if स्टेटमेंट का उपयोग करते हैं, तो Overlap की समस्या आती है।
उदाहरण:
// सिर्फ लगातार if स्टेटमेंट का उपयोग (Not a Ladder)
if (marks >= 60) {
printf("Pass\n");
}
if (marks >= 80) { // यह एक नया if है, जो पिछले if से जुड़ा नहीं है
printf("Distinction\n");
}
अगर अंक 85 हैं, तो दोनों if True हो जाएंगे:
- पहला if: “Pass” प्रिंट होगा।
- दूसरा if: “Distinction” प्रिंट होगा।
परिणाम: Pass और Distinction दोनों प्रिंट हो जाएंगे, जो कि गलत है क्योंकि हम एक-दूसरे से अलग (Mutually Exclusive) Grade चाहते थे।
सही तरीका:
हमेशा if को else if से जोड़ें ताकि एक बार में केवल एक ही ब्लॉक execute हो।
3. Statements के बाद सेमीकोलन लगाना
यह एक छोटी, लेकिन बहुत खतरनाक गलती है जो लॉजिक को पूरी तरह से बिगाड़ सकती है।
गलती से if या else if के parenthesis () के तुरंत बाद ; (सेमीकोलन) लगा देना।
उदाहरण:
// if के बाद सेमीकोलन (Semicolon)
if (x > 10); {
printf("X 10 से बड़ा है\n");
}
C कंपाइलर इस सेमीकोलन को एक खाली स्टेटमेंट (Null Statement) मानता है। इसका मतलब है कि:
- if (x > 10) के बाद वह खाली स्टेटमेंट execute हो जाएगा (बिना कुछ किए)।
- if स्टेटमेंट खत्म हो जाएगा।
- if के नीचे का ब्लॉक { printf(“X 10 से बड़ा है\n”); } अब if का हिस्सा नहीं माना जाएगा, बल्कि यह एक साधारण कोड ब्लॉक माना जाएगा।
परिणाम: x का मान चाहे जो भी हो, (1, 5, या 100), printf वाला स्टेटमेंट हमेशा execute होगा। यह शर्त (condition) को पूरी तरह से बेकार बना देता है।
4. else ब्लॉक को हटाना
कई Programmer और खासकर Beginner यह सोचकर else ब्लॉक छोड़ देते हैं कि उनकी सभी शर्तें पूरी हो चुकी हैं। लेकिन ऐसा करने से अज्ञात/अमान्य इनपुट (Unknown/Invalid Inputs) को संभालने में चूक हो जाती है।
उदाहरण:
ग्रेड वाले उदाहरण में, अगर हमने else छोड़ दिया, और यूजर ने 55 अंक डाले, तो कोई भी आउटपुट प्रिंट नहीं होगा, जिससे User भ्रमित हो जाएगा।
सही तरीका:
हमेशा एक सुरक्षित else ब्लॉक रखें जो उन सभी स्थितियों को संभाल सके जिनके बारे में हमने सोचा नहीं था। यह प्रोग्राम को मज़बूत (robust) बनाता है और अमान्य Input के मामले में एक दोस्ताना (friendly) त्रुटि संदेश (error message) दे सकता है।
// else का उपयोग करना
// ... else if blocks ...
else {
printf("अमान्य Input या अज्ञात स्थिति।\n"); // सभी छूटी हुई स्थितियों को संभालता है
}
5. if या else के बाद कर्ली ब्रेसेस ({}) का उपयोग न करना
अगर if या else if ब्लॉक के अंदर केवल एक स्टेटमेंट हो, तो C भाषा में कर्ली ब्रेसेस {} छोड़ना वैध है। लेकिन अगर आप बाद में उस ब्लॉक में एक और स्टेटमेंट जोड़ते हैं, तो यह गलती हो जाती है।
उदाहरण:
// ब्रेसेस नहीं हैं
if (x == 5)
printf("X 5 के बराबर है\n");
x = 1; // यह स्टेटमेंट if का हिस्सा नहीं है
if (x == 5) {
printf("X 5 के बराबर है\n");
x = 1; // अब यह if का हिस्सा है
}
पहले कोड में, x = 1; स्टेटमेंट हमेशा execute होगा, भले ही x == 5 True हो या False। इससे प्रोग्राम का लॉजिक बिगड़ सकता है।
सही तरीका:
भले ही आपके पास केवल एक ही स्टेटमेंट क्यों न हो, हमेशा if, else if, और else के बाद कर्ली ब्रेसेस {} का उपयोग करें। यह कोड को पढ़ने में आसान बनाता है और भविष्य की गलतियों को रोकता है।
else-if Ladder In C Quizzes
मैं आपको यहाँ कुछ quiz दे रहा हूँ, जिनके उत्तर भी साथ में हैं। लेकिन पहले आप सभी quiz के उत्तर कमेंट बॉक्स में लिखें। उसके बाद “Show Answer” बटन दबाकर सही उत्तर देख सकते हैं। यह अभ्यास (प्रैक्टिस) के लिए बेहतर रहेगा।
Q1. नीचे दिए गए कोड का आउटपुट क्या होगा?
#include <stdio.h>
int main() {
int a = 15;
if (a < 10) {
printf("A");
}
else if (a < 20) {
printf("B");
}
else if (a < 30) {
printf("C");
}
else {
printf("D");
}
return 0;
}
(a) A (b) B (c) C (d) D
Reason:
a = 15 है। पहली condition false लेकिन दूसरी true है, इसलिए “B” print होगा।Q2. If-Else Ladder में सही क्रम कौन-सा है?
मान लो हमें x के value के हिसाब से print करना है:
- x 100 से बड़ा है।
- x 50 से बड़ा है।
- इनमें से कोई नहीं।
(a) if (x > 50) → else if (x > 100) → else
(b) if (x > 100) → else if (x > 50) → else
Reason: बड़ी या specific condition हमेशा पहले रखनी चाहिए।
Q3. 10 अलग-अलग conditions चेक करनी हों तो कितने else if चाहिए?
(a) 9 (b) 10 (c) 11 (d) 1
Reason: 1 if + 9 else if = 10 total conditions।
Q4. If-Else Ladder में सबसे common गलती कौन-सी है?
(a) else block छोड़ देना
(b) if के बाद break लगाना
(c) गलत condition order रखना
(d) variable naming में गलती
Reason: गलत क्रम से बड़ी conditions चेक नहीं हो पातीं और output गलत आ सकता है।
Q5. क्या else block अनिवार्य (mandatory) होता है?
(a) हाँ, अनिवार्य है (b) नहीं, optional है (c) हाँ, अगर default use किया गया हो
Reason: अगर कोई भी condition true न हो तो else execute होगा, लेकिन उसे देना ज़रूरी नहीं।
निष्कर्ष – Else If Ladder in C
C Language में else-if ladder एक बहोत ही काम का Statement है, जो हमें multiple conditions को step-by-step चेक करने की सुविधा देता है। इस हिंदी गाइड में आपने else-if Laadder क्या है ?, Syntax, Working, Flowchart, Real-life Example (Student Grade Check Program), और Common mistakes को विस्तार से समझा। अगर आप Decision-Making Logic को साफ और readable रखना चाहते हैं, तो else if ladder सबसे अच्छा Opetion है।
Practice quizzes के ज़रिए आपने इसे practically भी देखा, जिससे आपकी Concept Clarity और Strong हो जायेगा। अब आप Confidently C में ऐसे programs लिख सकते हैं जिनमें कई शर्तें हों और हर case के लिए अलग output चाहिए। Regular Practice और Logical Thinking से आप इस else-if Ladder को Master कर सकते हैं।
