Follow Us
माध्यम चुनें / Select Medium:
Eng (English) Hindi (हिन्दी)
ICSE • कक्षा 9 • Information Technology • अध्याय 7
अनुमानित समय: 45 Mins
प्रगति: अध्ययनरत

जावा में सशर्त निर्माण (Conditional constructs in Java)

आईसीएसई कक्षा 9 कंप्यूटर अनुप्रयोगों में, "जावा में सशर्त निर्माण" निर्णय लेने वाली वास्तुकला की जांच करता है जो प्रोग्राम को तार्किक स्थितियों और शाखा निष्पादन को गतिशील रूप से मूल्यांकन करने में सक्षम बनाता है। यह व्यापक मास्टर गाइड चयनात्मक नियंत्रण संरचनाओं के पूर्ण स्पेक्ट्रम की जांच करता है: एकल-वैकल्पिक if कथन, दोहरे-विकल्प if-else निर्माण, बहु-शाखा if-else-if सीढ़ी, और गहराई से नेस्टेड if कथन। छात्र मल्टी-वे चयन switch-case निर्माण का पता लगाते हैं, इसके निष्पादन यांत्रिकी, लेबल मिलान, समर्थित डेटा प्रकार (बाइट, शॉर्ट, चार, इंट, स्ट्रिंग और एनम्स), default लेबल की भूमिका और break जंप स्टेटमेंट को छोड़े जाने पर होने वाली कुख्यात फ़ॉल-थ्रू घटना का विश्लेषण करते हैं। गाइड संपूर्ण द्विदिश परिवर्तन एल्गोरिदम प्रस्तुत करता है: जटिल if-else-if सीढ़ी को स्वच्छ switch-case ब्लॉक में परिवर्तित करना, सशर्त अभिव्यक्तियों को संक्षिप्त टर्नरी ऑपरेटर (? :) कथनों, मेनू-संचालित प्रोग्राम टेम्पलेट्स और डायग्नोस्टिक बोर्ड-शैली समस्या समाधान में बदलना।

टेलीकॉम स्विच क्रैश में एक लापता "ब्रेक" स्टेटमेंट नौ प्रमुख अमेरिकी हवाई अड्डों में 1991?

17 सितंबर 1991 को, न्यूयॉर्क में एक एटी एंड टी स्विचिंग सेंटर को एक विनाशकारी बिजली परिवर्तन का सामना करना पड़ा। जैसे ही स्वचालित बैकअप सॉफ़्टवेयर निष्पादित हुआ, C स्विच-स्टेटमेंट के अंदर कोड की एक पंक्ति में `break` जंप स्टेटमेंट का अभाव था! नेटवर्क ट्रैफ़िक को पुनः रूट करने के बाद समाप्त होने के बजाय, निष्पादन सीधे विफलता प्रबंधन रूटीन में "गिर गया"। नतीजा? 50 लाख से अधिक टेलीफोन कॉलें अवरुद्ध कर दी गईं, न्यूयॉर्क, बोस्टन और वाशिंगटन में हवाई यातायात नियंत्रण टावर बंद हो गए, और सैकड़ों वाणिज्यिक एयरलाइन उड़ानें आठ घंटे के लिए रोक दी गईं! कंप्यूटर प्रोग्रामिंग में, सशर्त शाखाकरण महत्वपूर्ण निर्णयों को नियंत्रित करता है: चाहे मिसाइल फायर हो, एटीएम से मुद्रा निकले, या मरीज को दवा मिले। एक भी ग़लत ब्रेस या टूटा हुआ टूटना आपदा का कारण बन सकता है। आइए हम जावा में सशर्त नियंत्रण निर्माणों के विज्ञान में महारत हासिल करें।

यह अध्याय क्यों महत्वपूर्ण है

सशर्त निर्माण प्रत्येक एल्गोरिदम की तार्किक रीढ़ बनाते हैं। आईसीएसई कंप्यूटर एप्लीकेशन परीक्षाओं में, छात्रों को नेस्टेड इफ-एल्स स्टेटमेंट्स की ड्राई-रन ट्रेसिंग, स्विच-केस फॉल-थ्रू आउटपुट की भविष्यवाणी, कंस्ट्रक्शंस को परिवर्तित करना, और सेक्शन बी में मेनू-संचालित प्रोग्राम लिखने पर परीक्षण किया जाता है।

अध्ययन से पूर्व (आवश्यक ज्ञान)

  • रिलेशनल ऑपरेटर्स (==, !=, >, <, >=, <=) और लॉजिकल ऑपरेटर्स (&&, ||,!)।
  • की बुनियादी समझ बूलियन सत्य मान (सही, गलत)।
  • कोड ब्लॉकों के भीतर वैरिएबल स्कोपिंग के साथ परिचितता {}।

इस अध्याय के लक्ष्य

  • सरल if, if-else, नेस्टेड if, और if-else-if लैडर ब्रांचिंग निर्माणों का विश्लेषण और निष्पादन करें।
  • मान्य केस स्थिरांक और डेटा प्रकार प्रतिबंधों का पालन करते हुए स्विच-केस निर्माण को कार्यान्वित करें।
  • `break` कथन के कार्य को समझाएं और प्रदर्शन करने वाले आउटपुट की भविष्यवाणी करें। "फ़ॉल-थ्रू" घटना।
  • जटिल यदि-अन्यथा-यदि सीढ़ी को स्विच-केस संरचनाओं में परिवर्तित करें और इसके विपरीत।
  • कंसोल इनपुट के माध्यम से उपयोगकर्ता की पसंद को स्वीकार करने वाले मजबूत मेनू-संचालित प्रोग्राम का निर्माण करें।
  • तार्किक बग पेश किए बिना जटिल बहु-शाखा निर्णय वृक्षों का मूल्यांकन करें।

अध्याय रूपरेखा एवं प्रगति

1 1। निर्णय लेने की वास्तुकला: यदि नि...
2 2. स्विच-केस संरचना: मल्टी-वे ब्रां...
3 3. फ़ॉल-थ्रू घटना और ब्रेक स्टेटमें...
4 4. यदि-अन्यथा सीढ़ी बनाम स्विच-केस:...
5 5. पूर्ण मेनू-संचालित प्रोग्राम टेम...
6 6. वास्तविक-विश्व मेनू-संचालित कार्...
7 7. व्यापक वास्तविक विश्व कार्यक्रम:...
8 8. क्लासिक निर्णय तर्क: व्यापक लीप...
9 9. स्विच-केस और नेस्टेड स्विच आर्कि...
10 10. लाइब्रेरी फाइन कैलकुलेशन एल्गोर...
11 11. निर्णय वास्तुकला में सर्वोत्तम...

सम्पूर्ण सैद्धांतिक एवं वैचारिक अध्ययन

1। निर्णय लेने की वास्तुकला: यदि निर्माणों का परिवार

चयन संरचनाएँ
ए. यदि निर्माण के चार प्रकार:
  1. सरल if (एकल-वैकल्पिक): एक कोड ब्लॉक को केवल तभी निष्पादित करता है जब निर्दिष्ट बूलियन स्थिति true का मूल्यांकन करती है।
    if (शेष < 1000) {
        System.out.println('कम शेष चेतावनी!');
    }
  2. दोहरा-वैकल्पिक if-else: यदि स्थिति true है तो if ब्लॉक निष्पादित करता है; अन्यथा else ब्लॉक निष्पादित करता है।
    if (संख्या % 2 == 0) {
        System.out.println('सम संख्या');
    }अन्यथा{
        System.out.println('विषम संख्या');
    }
  3. The if-else-if सीढ़ी (बहु-वैकल्पिक चयन): ऊपर से नीचे तक क्रमिक रूप से स्थितियों का मूल्यांकन करता है। जैसे ही कोई शर्त पूरी हो जाती है, उसका ब्लॉक निष्पादित हो जाता है, और सीढ़ी का शेष भाग छोड़ दिया जाता है। यदि कोई शर्त मेल नहीं खाती है, तो पिछला else फ़ॉलबैक के रूप में निष्पादित होता है।
    if (अंक >=90)
        ग्रेड = 'ए';
    अन्यथा यदि (अंक>=80)
        ग्रेड = 'बी';
    अन्यथा यदि (अंक>=70)
        ग्रेड = 'सी';
    अन्यथा
        ग्रेड = 'डी';
  4. नेस्टेड if: एक if या if-else स्टेटमेंट दूसरे if या else ब्लॉक के मुख्य भाग के अंदर रखा जाता है, जिसका उपयोग बहु-स्तरीय मानदंडों के लिए किया जाता है सत्यापन.

2. स्विच-केस संरचना: मल्टी-वे ब्रांचिंग

स्विच मैकेनिक्स
ए. स्विच-केस का औपचारिक सिंटैक्स:
स्विच (स्विच_एक्सप्रेशन) {
    केस स्थिरांक1:
        // यदि स्विच_एक्सप्रेशन == स्थिरांक 1 है तो कथन निष्पादित किया गया है
        टूटना; // तुरंत स्विच ब्लॉक से बाहर निकलें
    केस स्थिरांक2:
        // यदि स्विच_एक्सप्रेशन == स्थिरांक 2 है तो कथन निष्पादित किया गया है
        टूटना;
    डिफ़ॉल्ट:
        // यदि कोई केस स्थिरांक मेल नहीं खाता है तो स्टेटमेंट निष्पादित किया जाता है
        टूटना;
}
बी. जावा में स्विच-केस के लिए कठोर नियम:
  • अनुमत डेटा प्रकार: स्विच एक्सप्रेशन का मूल्यांकन इस प्रकार होना चाहिए: byte, short, char, int, String (जावा) 7+), या enum।
    सख्ती से वर्जित: फ्लोट, डबल, और बूलियन का उपयोग स्विच अभिव्यक्ति में नहीं किया जा सकता है!
  • केस लेबल स्थिर होना चाहिए: प्रत्येक केस लेबल एक अपरिवर्तनीय शाब्दिक या अंतिम संकलन-समय स्थिर अभिव्यक्ति होना चाहिए। वेरिएबल (जैसे, केस x:) या रेंज (जैसे, केस 80 से 90:) पूरी तरह से अवैध हैं।
  • अद्वितीय केस लेबल: एक ही स्विच निर्माण में डुप्लिकेट केस लेबल एक संकलन-समय त्रुटि उत्पन्न करते हैं।
  • वैकल्पिक डिफ़ॉल्ट: डिफॉल्ट लेबल वैकल्पिक है और इसे स्विच के अंदर कहीं भी रखा जा सकता है, हालांकि यह पारंपरिक रूप से सबसे अंत में स्थित है।

3. फ़ॉल-थ्रू घटना और ब्रेक स्टेटमेंट

परीक्षक चेतावनी
ए. फॉल-थ्रू क्या है?

ब्रेक स्टेटमेंट एक जंप स्टेटमेंट है जो स्विच ब्लॉक को तत्काल समाप्त करने के लिए बाध्य करता है। यदि कोई प्रोग्रामर किसी मेल खाते मामले से ब्रेक स्टेटमेंट को छोड़ देता है, तो निष्पादन नहीं रुकता है! इसके बजाय, प्रोग्राम नियंत्रण क्रमिक रूप से सभी बाद के केस स्टेटमेंट को निष्पादित करता है, भले ही उनके लेबल मेल खाते हों या नहीं, यह तब तक जारी रहता है जब तक कि ब्रेक का सामना न हो जाए या स्विच ब्लॉक का अंत न हो जाए।

बी. ट्रेसिंग फ़ॉल-थ्रू (क्लासिक बोर्ड समस्या):
int विकल्प = 2;
स्विच (विकल्प) {
    केस 1:
        System.out.print('अल्फा');
    केस 2:
        System.out.print("बीटा"); // मिलान! निष्पादित करता है. (कोई ब्रेक नहीं!)
    केस 3:
        System.out.print("गामा"); // गिर जाता है! निष्पादित करता है.
        तोड़ना; // यहाँ टूट जाता है!
    केस 4:
        System.out.print("डेल्टा");
    डिफ़ॉल्ट:
        System.out.print('ओमेगा');
}

आउटपुट: बीटा गामा

स्पष्टीकरण: चूंकि केस 2 मेल खाता है और इसमें ब्रेक का अभाव है, निष्पादन केस 3 में गिर जाता है, "गामा" प्रिंट करता है, जहां यह अंततः ब्रेक स्टेटमेंट को हिट करता है और निकास.

4. यदि-अन्यथा सीढ़ी बनाम स्विच-केस: वास्तुशिल्प तुलना

रचना तुलना
का मूल्यांकन कर सकते हैं
फ़ीचरयदि-अन्यथा-यदि सीढ़ीस्विच-केस निर्माण
स्थिति मूल्यांकन जटिल तार्किक स्थितियों, असमानताओं (>, <=), और श्रेणियों (अंक >= 80 && अंक <= 90).निश्चित असतत स्थिरांकों के विरुद्ध प्रत्यक्ष समानता के लिए सख्ती से परीक्षण करता है। सीधे रेंज या रिलेशनल ऑपरेटरों का परीक्षण नहीं कर सकते।
समर्थित डेटा प्रकार सभी डेटा प्रकारों (फ्लोट और डबल सहित) को समायोजित करते हुए बूलियन परिणाम देने वाली किसी भी अभिव्यक्ति का मूल्यांकन करता है। byte, short, char, int, और String तक सीमित। फ़्लोटिंग-पॉइंट मानों का मूल्यांकन नहीं किया जा सकता.
निष्पादन दक्षता रैखिक अनुक्रमिक मूल्यांकन (सबसे खराब स्थिति में O(N)); ऊपर से नीचे तक हर स्थिति का मूल्यांकन करता है। उच्च प्रदर्शन; आधुनिक जेवीएम स्विच को जंप टेबल (टेबलस्विच / लुकअपस्विच बाइटकोड) में संकलित करते हैं जो ओ(1) ब्रांचिंग के पास प्रदान करते हैं।
पठनीयता गहरी मल्टी-वे ब्रांचिंग के साथ बोझिल, अव्यवस्थित और पढ़ने में कठिन हो सकता है। मेनू-संचालित कार्यक्रमों के लिए साफ-सुथरा, व्यवस्थित और सुरुचिपूर्ण।

5. पूर्ण मेनू-संचालित प्रोग्राम टेम्पलेट

कार्यकारी कार्यान्वयन
मेनू-संचालित क्षेत्र कैलकुलेटर:
आयात java.util.Scanner;

सार्वजनिक वर्ग एरियामेनूडेमो {
    सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग[] तर्क) {
        स्कैनर इन = नया स्कैनर (System.in);
        System.out.println('====== ज्यामितीय क्षेत्र कैलकुलेटर ======');
        System.out.println(''1. वृत्त का क्षेत्रफल');
        System.out.println("2. आयत का क्षेत्रफल");
        System.out.println("3. त्रिभुज का क्षेत्रफल");
        System.out.print('अपनी पसंद दर्ज करें (1-3):');
        int पसंद = in.nextInt();

        स्विच (विकल्प) {
            केस 1:
                System.out.print ("त्रिज्या दर्ज करें:");
                डबल आर = in.nextDouble();
                दोहरा वृत्तक्षेत्र = गणित.पीआई * आर * आर;
                System.out.println(''वृत्त का क्षेत्रफल='' +वृत्तक्षेत्र);
                तोड़ना;

            केस 2:
                System.out.print ("लंबाई और चौड़ाई दर्ज करें:");
                डबल एल = in.nextDouble();
                डबल बी = in.nextDouble();
                डबल रेक्टएरिया = एल * बी;
                System.out.println("आयत का क्षेत्रफल = " + आयतक्षेत्र);
                तोड़ना;

            केस 3:
                System.out.print('आधार और ऊंचाई दर्ज करें:');
                डबल बेस = in.nextDouble();
                दोगुनी ऊँचाई = in.nextDouble();
                दोहरा त्रिक्षेत्र = 0.5 * आधार * ऊँचाई;
                System.out.println("त्रिकोण का क्षेत्रफल = "+त्रिक्षेत्र);
                तोड़ना;

            डिफ़ॉल्ट:
                System.out.println ("त्रुटि: अमान्य विकल्प! कृपया 1 और 3 के बीच चयन करें");
                तोड़ना;
        }
    }
}

6. वास्तविक-विश्व मेनू-संचालित कार्यक्रम: बैंकिंग एटीएम सिम्युलेटर

मेनू-संचालित प्रोग्राम
इंटरएक्टिव बैंकिंग सिम्युलेटर:
आयात java.util.Scanner;

पब्लिक क्लास एटीएमसिम्युलेटर {
    सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग[] तर्क) {
        स्कैनर इन = नया स्कैनर (System.in);
        दोहरा शेष = 50000.0;

        System.out.println('====== नेशनल बैंक एटीएम में आपका स्वागत है ======');
        System.out.println(''1. शेष राशि जांचें');
        System.out.println(''2. जमा निधि');
        System.out.println(''3. नकद निकालें');
        System.out.println('4. बाहर निकलें');
        System.out.print('एक विकल्प चुनें (1-4):');
        int विकल्प = in.nextInt();

        स्विच (विकल्प) {
            केस 1:
                System.out.println ("आपका उपलब्ध शेष है: ₹" + शेष);
                तोड़ना;
            केस 2:
                System.out.print ("जमा राशि दर्ज करें: ₹");
                दोहरा जमा = in.nextDouble();
                यदि (जमा > 0) {
                    शेष += जमा;
                    System.out.println ("जमा सफल! नया शेष: ₹" + शेष);
                }अन्यथा{
                    System.out.println('अमान्य राशि!');
                }
                तोड़ना;
            केस 3:
                System.out.print ("निकासी राशि दर्ज करें: ₹");
                डबल निकासी = in.nextDouble();
                यदि (निकासी > 0 && निकासी <= शेष) {
                    शेष - = निकालना;
                    System.out.println('निकासी सफल! शेष शेष: ₹' + शेष);
                }अन्यथा{
                    System.out.println('लेन-देन विफल: अपर्याप्त धनराशि या अमान्य राशि!');
                }
                तोड़ना;
            केस 4:
                System.out.println ("हमारे साथ बैंकिंग करने के लिए धन्यवाद। आपका दिन मंगलमय हो!");
                तोड़ना;
            डिफ़ॉल्ट:
                System.out.println('अमान्य चयन! कृपया 1 और 4 के बीच एक विकल्प चुनें');
                तोड़ना;
        }
    }
}

7. व्यापक वास्तविक विश्व कार्यक्रम: आयकर कैलकुलेटर

आयकर कार्यक्रम
प्रगतिशील स्लैब टैक्स कैलकुलेटर:
आयात java.util.Scanner;

पब्लिक क्लास इनकमटैक्सकैलकुलेटर {
    सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग[] तर्क) {
        स्कैनर इन = नया स्कैनर (System.in);
        System.out.print ("वार्षिक कर योग्य आय दर्ज करें: ₹");
        दोगुनी आय = in.nextDouble();
        दोहरा कर = 0.0;

        // प्रगतिशील टैक्स स्लैब:
        // ₹2,50,000 तक : शून्य (0%)
        // ₹2,50,001 से ₹5,00,000: ₹2,50,000 से अधिक आय का 5%
        // ₹5,00,001 से ₹10,00,000 : ₹12,500 + ₹5,00,000 से अधिक आय का 20%
        // ₹10,00,000 से ऊपर: ₹1,12,500 + ₹10,00,000 से अधिक आय का 30%
        यदि (आय <= 250000) {
            कर = 0.0;
        } अन्यथा यदि (आय <= 500000) {
            कर = (आय - 2500000) * 0.05;
        } अन्यथा यदि (आय <= 1000000) {
            कर = 12500 + (आय - 500000) * 0.20;
        }अन्यथा{
            कर = 112500 + (आय - 1000000) * 0.30;
        }

        दोहरा उपकर = कर * 0.04; // 4% स्वास्थ्य और शिक्षा उपकर
        दोगुना कुल कर = कर + उपकर;

        System.out.println('देय आयकर: ₹' + कर);
        System.out.println('शिक्षा उपकर (4%) : ₹' + उपकर);
        System.out.println('कुल कर देयता: ₹' + कुलकर);
    }
}

8. क्लासिक निर्णय तर्क: व्यापक लीप वर्ष एल्गोरिदम

लीप वर्ष तर्क
ए. ग्रेगोरियन लीप वर्ष नियम:

एक वर्ष एक लीप वर्ष है यदि:

  1. यह 4 से विभाज्य है, AND
  2. यह 100 से विभाज्य नहीं है, जब तक कि
  3. यह 400 (शताब्दी लीप वर्ष जैसे 1600, 2000, 2400) से भी विभाज्य है।
आयात java.util.स्कैनर;

पब्लिक क्लास लीपइयरचेक {
    सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग[] तर्क) {
        स्कैनर इन = नया स्कैनर (System.in);
        System.out.print('एक वर्ष दर्ज करें (जैसे 2024):');
        int वर्ष = in.nextInt();

        बूलियन इसलीप = गलत;
        यदि ((वर्ष % 4 == 0 && वर्ष % 100 != 0) || (वर्ष % 400 == 0)) {
            इसलीप = सत्य;
        }

        अगर (लीप है) {
            System.out.println(वर्ष + "एक लीप वर्ष है (366 दिन)।");
        }अन्यथा{
            System.out.println(वर्ष + "एक सामान्य वर्ष है (365 दिन)।");
        }
    }
}

9. स्विच-केस और नेस्टेड स्विच आर्किटेक्चर में स्ट्रिंग्स का उपयोग करना

आधुनिक स्विच उपयोग
ए. स्विच-केस में स्ट्रिंग मिलान (जावा 7+):

जावा 7 से शुरू करके, प्रोग्रामर String ऑब्जेक्ट का उपयोग सीधे स्विच एक्सप्रेशन में कर सकते हैं। स्ट्रिंग तुलना केस-संवेदी है और आंतरिक रूप से String.equals():

पर निर्भर करती है
स्ट्रिंग दिवस = "सोमवार";
स्विच (day.toLowerCase()) {
    मामला "सोमवार":
    मामला "मंगलवार":
    मामला "बुधवार":
    मामला "गुरुवार":
    मामला "शुक्रवार":
        System.out.println('सप्ताह का दिन (स्कूल/कार्य)');
        तोड़ना;
    मामला "शनिवार":
    मामला "रविवार":
        System.out.println('सप्ताहांत (छुट्टी)');
        तोड़ना;
    डिफ़ॉल्ट:
        System.out.println('अमान्य दिन का नाम!');
        तोड़ना;
}

10. लाइब्रेरी फाइन कैलकुलेशन एल्गोरिदम

ठीक गणना स्लैब
ए. प्रोग्रेसिव लेट रिटर्न फाइन स्ट्रक्चर:

स्कूल पुस्तकालयों में, अतिदेय पुस्तक जुर्माने की गणना उत्तरोत्तर की जाती है:

  • पहले 5 दिन देर से: ₹0.50 प्रति दिन
  • अगले 5 दिन (6-10 दिन): ₹1.00 प्रति दिन
  • 10 दिन से ऊपर: ₹2.00 प्रति दिन
डबल जुर्माना = 0.0;
यदि (दिन <= 5) {
    ठीक = दिन * 0.50;
} अन्यथा यदि (दिन <= 10) {
    जुर्माना = (5 * 0.50) + (दिन - 5) * 1.00;
}अन्यथा{
    जुर्माना = (5 * 0.50) + (5 * 1.00) + (दिन - 10) * 2.00;
}
System.out.println('कुल लाइब्रेरी जुर्माना: ₹' + जुर्माना);

11. निर्णय वास्तुकला में सर्वोत्तम अभ्यास

कोडिंग मानक

निष्पादन दक्षता को अधिकतम करने के लिए हमेशा सबसे अधिक मिलान वाली स्थिति को यदि-और-यदि सीढ़ी के शीर्ष पर रखें। स्विच-केस निर्माणों में, समूह केस लेबल जो समान तर्क को एक साथ साझा करते हैं (उदाहरण के लिए, केस 'ए': केस 'ई': केस 'आई': केस 'ओ': केस 'यू': प्रिंट("स्वर"); ब्रेक;) अनावश्यक कोड दोहराव से बचने के लिए।

सामान्य गलतियाँ एवं परीक्षक के जाल (Examiner Traps)

सामान्य भ्रम / गलत उत्तर

समानता तुलना (==) के साथ असाइनमेंट (=) को भ्रमित करना या अमान्य पहचानकर्ताओं का उपयोग करना।

सही वैज्ञानिक तथ्य

तुलना के लिए == का उपयोग करें और सत्यापित करें कि पहचानकर्ता मानक जावा नामकरण सम्मेलनों का पालन करते हैं।

सामान्य भ्रम / गलत उत्तर

स्विच-केस में ब्रेक को छोड़ना या उपयोग न करना स्कैनर में न्यूलाइन बफर स्किपिंग।

सही वैज्ञानिक तथ्य

फॉल-थ्रू को रोकने के लिए हमेशा केस ब्लॉक में ब्रेक शामिल करें और नेक्स्टलाइन() से पहले बफर को फ्लश करें।

सशर्त संरचनाएं: यदि-और सीढ़ी बनाम स्विच-केस और फ़ॉल-थ्रू

Conditional Constructs: if-else Ladder vs switch-case & Fall-Through if-else-if LADDER (RELATIONAL & RANGES) 1. Tests Relational Expressions & Ranges e.g., if (marks >= 80 && marks <= 90) Supports all data types (including float/double) 2. Linear Sequential Evaluation Tests conditions from top to bottom Exits ladder as soon as first true condition is met 3. Trailing else as Fallback Executes when all conditions evaluate to false else { grade = 'F'; } switch-case & FALL-THROUGH MECHANICS Supported Types: byte, short, char, int, String NO float, double, or boolean allowed! Case labels must be discrete compile-time constants. No ranges allowed (case 80 to 90 is INVALID). THE FALL-THROUGH PHENOMENON: • Occurs when a case block omits 'break' • Execution cascades into subsequent cases Example: choice = 2; case 2: print("B "); // No break! case 3: print("C "); break; Output: B C (Executes both!) DECISION RULES: Use if-else for ranges/floats | Use switch for discrete choices & menus

अध्याय का सार संक्षेप एवं 10 मुख्य निष्कर्ष

मुख्य बिंदु 1
चयन संरचनाएं: प्रवाह कथनों को नियंत्रित करें जो मूल्यांकित बूलियन स्थितियों के आधार पर शाखा निष्पादन पथ।
मुख्य बिंदु 2
यदि वेरिएंट: सरल यदि (एकल शाखा), यदि-अन्यथा (दोहरी शाखा), यदि-अन्य-यदि सीढ़ी (बहु-स्तरीय मानदंड), और नेस्टेड if.
मुख्य बिंदु 3
स्विच डेटा प्रकार: जावा में, स्विच एक्सप्रेशन केवल बाइट, शॉर्ट, चार, इंट, स्ट्रिंग और एनम (फ्लोट, डबल, बूलियन निषिद्ध हैं) का मूल्यांकन कर सकते हैं।
मुख्य बिंदु 4
लगातार केस लेबल: केस लेबल अद्वितीय, अलग स्थिरांक या शाब्दिक होना चाहिए; वेरिएबल और रेंज एक्सप्रेशन वाक्यात्मक रूप से अवैध हैं।
मुख्य बिंदु 5
ब्रेक कीवर्ड: स्विच निर्माण को समाप्त करता है और क्लोजिंग ब्रेस के तुरंत बाद स्टेटमेंट पर नियंत्रण स्थानांतरित करता है।
मुख्य बिंदु 6
फॉल-थ्रू घटना: जब ब्रेक छोड़ा जाता है, तो निष्पादन विफल हो जाता है और बाद के केस स्टेटमेंट को उनके लेबल मानों की परवाह किए बिना निष्पादित करता है।
मुख्य बिंदु 7
डिफॉल्ट की भूमिका: जब कोई केस लेबल मेल नहीं खाता है तो डिफ़ॉल्ट लेबल फ़ॉलबैक के रूप में निष्पादित होता है; अंत में रखे जाने पर इसे तोड़ने की आवश्यकता नहीं है।
मुख्य बिंदु 8
श्रेणी परीक्षण: यदि-और-यदि सीढ़ी परीक्षण श्रेणियों (अंक >= 80 और अंक <= 90) के लिए उपयुक्त है, जबकि स्विच सीधे श्रेणियों का परीक्षण नहीं कर सकता है।
मुख्य बिंदु 9
मेनू-संचालित डिजाइन: स्विच-केस स्पष्ट, पठनीय कंसोल मेनू और इंटरैक्टिव चयनों को डिजाइन करने के लिए उद्योग-मानक वास्तुकला है।
मुख्य बिंदु 10
अन्यथा लटकना ट्रैप: एक अन्य ब्लॉक निकटतम बेजोड़ से जुड़ता है यदि उसी ब्लॉक में, जब तक कि ब्रेसिज़ द्वारा ओवरराइड न किया गया हो {}।

स्व-मूल्यांकन अभ्यास (Check Your Understanding)

मूल वैचारिक स्पष्टता की जांच के लिए नैदानिक प्रश्न। पहले स्वयं हल करें, फिर उत्तर देखें।

1
जावा स्विच स्टेटमेंट एक्सप्रेशन में कौन से डेटा प्रकारों की अनुमति नहीं है?
उत्तर एवं व्याख्या देखें
उत्तर: फ्लोटिंग-पॉइंट प्रकार (फ्लोट, डबल) और बूलियन जावा स्विच एक्सप्रेशन में सख्ती से प्रतिबंधित हैं।
ICSE कंप्यूटर एप्लीकेशन मार्किंग स्कीम
2
क्या है स्विच-केस स्टेटमेंट में "फॉल-थ्रू" घटना?
उत्तर एवं व्याख्या देखें
उत्तर: फॉल-थ्रू रनटाइम व्यवहार है जो तब होता है जब एक मिलान केस ब्लॉक "ब्रेक" स्टेटमेंट को छोड़ देता है, जिससे बाद के केस ब्लॉक के माध्यम से क्रमिक रूप से निष्पादन जारी रहता है, भले ही उनके लेबल मेल खाते हों या नहीं।
आईसीएसई कंप्यूटर एप्लीकेशन मार्किंग स्कीम
3
विकल्प = 3 होने पर आउटपुट क्या होगा: "स्विच (विकल्प) {केस 1: प्रिंट ("लाल"); केस 2: प्रिंट ("नीला"); केस 3: प्रिंट ("हरा"); केस 4: प्रिंट ("पीला"); ब्रेक; डिफ़ॉल्ट: प्रिंट ("व्हाइट"); }"?
उत्तर एवं व्याख्या देखें
उत्तर: "ग्रीनयेलो"। केस 3 मेल खाता है और "ग्रीन" प्रिंट करता है, लेकिन ब्रेक की कमी के कारण, निष्पादन केस 4 में गिर जाता है, "पीला" प्रिंट होता है, जहां यह ब्रेक पर समाप्त होता है।
ICSE कंप्यूटर एप्लिकेशन मार्किंग स्कीम
4
जावा स्विच स्टेटमेंट में "केस x> 10:" अवैध क्यों है?
उत्तर एवं व्याख्या देखें
उत्तर: क्योंकि जावा केस लेबल्स को अलग-अलग संकलन-समय स्थिरांक (शाब्दिक) होना चाहिए। संबंधपरक अभिव्यक्तियाँ, बूलियन स्थितियाँ और परिवर्तनीय तुलनाएँ केस लेबल के रूप में वाक्यात्मक रूप से अवैध हैं।
ICSE कंप्यूटर अनुप्रयोग अंकन योजना
5
स्थिति परीक्षण के संबंध में यदि-और-यदि सीढ़ी और स्विच-केस के बीच अंतर करें।
उत्तर एवं व्याख्या देखें
उत्तर: यदि-अन्य-यदि सीढ़ी जटिल संबंधपरक अभिव्यक्तियों, श्रेणियों (उदाहरण के लिए, x >= 10 && x <=) का परीक्षण कर सकती है 50), और फ़्लोटिंग-पॉइंट मान। स्विच-केस निर्माण केवल असतत पूर्णांक, चार, या स्ट्रिंग स्थिरांक के विरुद्ध सटीक समानता के लिए परीक्षण कर सकता है।
ICSE कंप्यूटर अनुप्रयोग अंकन योजना
6
क्या स्विच स्टेटमेंट में "डिफ़ॉल्ट" लेबल अनिवार्य है, और इसे अंत में प्रदर्शित होना चाहिए?
उत्तर एवं व्याख्या देखें
उत्तर: नहीं, डिफ़ॉल्ट लेबल वैकल्पिक है। जबकि परंपरागत रूप से अंत में रखा जाता है, यह स्विच बॉडी के अंदर कहीं भी दिखाई दे सकता है; यदि इसे बिना किसी रुकावट के बीच में रखा जाता है, तो यह फॉल-थ्रू भी प्रदर्शित करेगा।
ICSE कंप्यूटर एप्लीकेशन मार्किंग स्कीम
7
नेस्टेड इफ स्टेटमेंट्स में "डैंग्लिंग एल्स" समस्या क्या है और इसे जावा में कैसे हल किया जाता है?
उत्तर एवं व्याख्या देखें
उत्तर: डैंग्लिंग एल्स समस्या उस अस्पष्टता को संदर्भित करती है जिसके बारे में नेस्टेड स्टेटमेंट्स में "इफ" और "एल्स" का संबंध है। जावा इसे उसी ब्लॉक के भीतर निकटतम पूर्ववर्ती बेजोड़ "if" से बाइंड करके इसका समाधान करता है। घुंघराले ब्रेसिज़ का उपयोग करने से अस्पष्टता स्पष्ट रूप से हल हो जाती है।
ICSE कंप्यूटर अनुप्रयोग अंकन योजना
8
एक टर्नरी अभिव्यक्ति में कनवर्ट करें: "यदि (n > 0) चिह्न = 1; अन्यथा यदि (n < 0) चिह्न = -1; अन्यथा चिह्न = 0;"
उत्तर एवं व्याख्या देखें
उत्तर: चिह्न = (n > 0) ? 1 : ((n < 0) ? -1 : 0);
ICSE कंप्यूटर अनुप्रयोग अंकन योजना
अध्याय का अध्ययन पूर्ण हुआ?
अभ्यास के लिए तैयार?

ऑनलाइन CBT टेस्ट देकर तैयारी का मूल्यांकन करें

झारखण्ड बोर्ड परीक्षा पैटर्न पर आधारित बहुविकल्पीय प्रश्नों का ऑनलाइन टेस्ट दें। तुरंत परिणाम, समय विश्लेषण और प्रत्येक प्रश्न का विस्तृत हल प्राप्त करें।

AI अध्ययन मित्र

त्वरित शंका समाधान

जावा में सशर्त निर्माण (Conditional constructs in Java) में कोई संदेह या प्रश्न है? हमारे AI अध्ययन मित्र से तुरंत समझें।