Java में for-each
तीन पूर्ण संख्याएँ एक array में रखें जिसका नाम slots है: 2, फिर 4, फिर 6। लिखें for (int n : slots) और braces के अंदर n छापें। स्क्रीन पर तीन पंक्तियाँ दिखनी चाहिए: 2, फिर 4, फिर 6। इस पृष्ठ पर आप index का counter नहीं लिखते। हर पास array की अगली value नाम n को देता है। यही घूमना इस पृष्ठ का पाठ है।
array की हर value के लिए एक नाम
Pack.java नाम की एक छोटी प्रोग्राम फ़ाइल बनाएँ। पहली पंक्ति पर public class फ़ाइल नाम से मेल खानी चाहिए: public class Pack। इस फ़ाइल में पुराना Skip या Pulse class नाम न छोड़ें; कंपाइलर class नाम और फ़ाइल नाम का मेल चाहता है।
main के अंदर पहले array रखें:
int[] slots = {2, 4, 6};
यह पंक्ति कुछ छापती नहीं। यह केवल तीन पूर्ण संख्याएँ नाम slots के नीचे रखती है। फिर for-each लूप:
for (int n : slots) {
System.out.println(n);
}
शब्द for अभी भी छोटे अक्षरों में है। कोष्ठक के अंदर बीच में colon के साथ तीन टुकड़े बैठते हैं: प्रकार int, एक तत्व के लिए नाम n, फिर colon, फिर array नाम slots। वह colon case लेबल नहीं है और path separator भी नहीं। यह चिह्नित करता है «slots की हर value n में जाती है।» braces शरीर रखते हैं। System.out.println(n); वर्तमान value को n के चारों ओर quotes के बिना लिखता है। कंपाइल से पहले फ़ाइल सहेजें।
वह प्रोग्राम जो 2 फिर 4 फिर 6 छापता है
यह वही संस्करण है जिसे आप पहले कंपाइल करते हैं।
public class Pack {
public static void main(String[] args) {
int[] slots = {2, 4, 6};
for (int n : slots) {
System.out.println(n);
}
}
}
उस फ़ोल्डर से जहाँ Pack.java है, javac Pack.java चलाएँ। जब कोष्ठक, braces और colon मेल खाते हैं, javac अपनी कोई पंक्ति नहीं लिखता। फिर java Pack चलाएँ — java Pack.java नहीं। दूसरी कमांड से .java अंत हटा दें। वही दो कमांड Windows और macOS दोनों पर चलती हैं; इस पृष्ठ को किसी भी सिस्टम के लिए अलग shell वर्तनी की ज़रूरत नहीं। प्रोग्राम को तीन पंक्तियाँ छापकर रुकना चाहिए: 2, फिर 4, फिर 6। उसे आपसे टाइप नहीं माँगना चाहिए। अगर टर्मिनल कीबोर्ड इनपुट का इंतज़ार करे, तो पुराने अभ्यास का nextLine अभी फ़ाइल में है। उस कॉल को हटाएँ और ऊपर वाला array तथा for-each रखें। गलत स्क्रीन पंक्ति का मतलब नया JDK इंस्टॉल नहीं है।
एक पूरा रन क्रम से पढ़ें। slots में 2, फिर 4, फिर 6 हैं। पहला पास n को 2 करता है और println 2 लिखता है। दूसरा पास n को 4 करता है और 4 लिखता है। तीसरा पास n को 6 करता है और 6 लिखता है। फिर और values नहीं रहतीं, इसलिए लूप खत्म होता है। इस पृष्ठ पर आपने int i = 0 या i < slots.length नहीं लिखा। for-each हेडर Java से कहता है कि हर संग्रहीत value एक बार देखे। नाम n हर पास में नया केवल इस अर्थ में है कि वह अगला तत्व रखता है; आप उसे हेडर में एक ही बार int n के रूप में घोषित करते हैं।
String array को उसी तरह घूमें
संग्रहीत array और तत्व का प्रकार बदलें ताकि हर value एक छोटा शब्द हो:
String[] tags = {"red", "blue"};
for (String t : tags) {
System.out.println(t);
}
अब स्क्रीन पर दो पंक्तियाँ दिखनी चाहिए: red, फिर blue। colon अभी भी तत्व के प्रकार और array नाम के बीच बैठता है। शरीर अभी भी उस नाम को छापता है जो एक तत्व रखता है।
public class Pack {
public static void main(String[] args) {
String[] tags = {"red", "blue"};
for (String t : tags) {
System.out.println(t);
}
}
}
फिर से कंपाइल और चलाएँ: javac Pack.java, फिर java Pack। आपको दो पंक्तियाँ दिखनी चाहिए। आपने int array को String array से बदला और तत्व नाम का प्रकार String से मिलाया। red और blue देखने के बाद आप int डेमो वापस रख सकते हैं। दोनों संस्करण सही Java हैं। वे अलग तत्व प्रकारों के साथ वही for-each आकार सिखाते हैं।
String रन एक बार और पढ़ें। tags में red, फिर blue हैं। पहला पास t को red करता है और छापता है। दूसरा पास t को blue करता है और छापता है। फिर लूप खत्म होता है। array literal में quotes संग्रहीत पाठ को चिह्नित करती हैं। println(t) बिना अतिरिक्त quotes के t के चारों ओर वे संग्रहीत अक्षर स्क्रीन पर लिखता है।
वे नियम जो for-each को साफ़ रखते हैं
कोष्ठक में प्रकार, नाम, colon और array नाम इसी क्रम में होने चाहिए। बिना colon के for (int n slots) लिखने पर javac विफल होता है। तत्व का प्रकार array से मेल खाना चाहिए: int array के साथ int, String array के साथ String। String[] के पास int n रखना इस पाठ का आकार नहीं है। जब शरीर में एक या अधिक पंक्तियाँ हों, braces अभी भी शरीर रखते हैं।
for-each Beat पृष्ठ का गिना हुआ for नहीं है, और Skip पृष्ठ का break भी नहीं। गिने हुए for ने counter के साथ शुरू, जाँच और कदम लिखा। for-each उन values को घूमता है जो पहले से array में संग्रहीत हैं। break लूप जल्दी खत्म करता है; इस पृष्ठ का पहला डेमो हर value छापता है। उसी main में Skip का break डेमो या Pulse का while न छोड़ें और फिर हैरान न हों कि स्क्रीन 1 और 2 क्यों दिखाती है, 2, 4, 6 नहीं। इस सत्र के main में केवल array और for-each होना चाहिए।
एक आम उलझन स्वयं सिंटैक्स छापना है: System.out.println("for (int n : slots)");। वह हेडर के अक्षर लिखता है। वह array नहीं घूमता। दूसरी उलझन System.out.println("n"); quotes के साथ है, जो हर पास अक्षर n छापता है, 2, 4 और 6 नहीं। जब आप तत्व की value स्क्रीन पर चाहें, quotes के बिना println(n) रखें।
अगर array में कोई तत्व नहीं — उदाहरण int[] slots = {}; — शरीर कभी नहीं चलता और स्क्रीन खाली रहती है। वह भी सही for-each है; इस पाठ के डेमो कम से कम दो values रखते हैं ताकि छपी पंक्तियाँ दिखें। जब बाद में स्क्रीन पर index संख्या चाहिए, गिना हुआ for वापस आता है; for-each values देखने के लिए है बिना उस index को स्वयं संभाले। लूप के अंदर n = 9; से value बदलना इस शुरुआती आकार पर array स्लॉट नहीं लिखता — n को वह value समझें जो आप छापने के लिए पढ़ते हैं, slots संपादित करने का औज़ार नहीं।
अब आप क्या कर सकते हैं
आप एक array रख सकते हैं, for (Type name : arrayName) लिख सकते हैं, और हर value एक बार छाप सकते हैं। तत्व प्रकार को array से मिलाना लूप को कंपाइल योग्य रखता है। अगला पृष्ठ methods है, जहाँ आप पंक्तियों को उस नाम के नीचे जोड़ते हैं जिसे main से बुला सकते हैं।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी