2014-04-12 8 views
5

लूप में स्थिति खाली छोड़ दी गई है और कोड संकलित और चलाता है।लूप रिक्त स्थिति

for(int i=0; ; i++) 
    System.out.print(i); //this code does not execute 
//code after this does not execute 

लेकिन, मुझे समझ में नहीं आता कि यह कैसे और क्यों संभव है।

+0

आप भी पाश के लिए चारों ओर संदर्भ प्रदान कर सकते हैं? यदि आप लूप से पहले 'system.out.print ("test")' लाइन जोड़ते हैं तो क्या यह कुछ प्रिंट करता है? –

+0

क्या आप वाकई उस हिस्से क्रियान्वित किया जाता है? यह हमेशा के लिए (http [जावा में कोई पैरामीटर के साथ पाश के लिए] चलाना चाहिए ... की –

+0

संभव डुप्लिकेट: // stackoverflow।कॉम/प्रश्न/6051869/फॉर-लूप-साथ-नो-पैरामीटर-इन-जावा) – thumbmunkeys

उत्तर

2

यदि यह कुछ भी प्रिंट नहीं करता है, तो इसका मतलब है कि आप इसे लूप के लिए नहीं पहुंच रहे हैं।
यदि आप इसे प्राप्त कर रहे हैं, तो इसे 0 से ऊपर की सभी संख्याओं को मुद्रित करना चाहिए।
यह एक अंतहीन पाश प्रिंटिंग 0, 1, 2, ...
आपकी समस्या कहीं और है (शायद लूप के पहले)।

+0

बस एक स्पष्टीकरण: प्रारंभिक प्रश्न यह था कि यह लूप कुछ भी प्रिंट क्यों नहीं करता है। –

2

NetBeans में इस परीक्षण के बाद यह इस प्रकार है:

आवेदन चल रहा हो: कोई उत्पादन

जब अनुप्रयोग बंद कर दिया जाता है: सभी नंबरों को कंसोल में outputted हैं।

तो यह है काम करते हैं, अन्य उत्तर से संदर्भ को देखो पता करने के लिए क्यों यह काम करता है।

3

बस नीचे पंक्ति बदलें, हालांकि यह कोई मुद्दा नहीं है।

System.out.print(i); //this code does not seems execute by checking o/p on console but in reals it works as well. 

System.out.println(i); //this code works and you will be able to see o/p on console. 

या

System.out.print(i+" "); // this will show you some momentary action on Eclipse console. 

करने के लिए यह कुछ ग्रहण आईडीई कंसोल मुद्रण मुद्दे के रूप में मुझे लगता है। जैसा कि आपने अपने प्रश्न में उल्लेख किया है, पहले संस्करण के साथ, मैं कोई आउटपुट नहीं देख सकता। print() उसी लाइन पर प्रिंटिंग पर रहता है, यह हमारे लिए दृश्यमान नहीं हो सकता है।

हालांकि, यदि आप डीबग मोड में अपना कोड चलाते हैं और उपरोक्त रेखा पर ब्रेकपॉइंट रखते हैं। ब्रेकपॉइंट हिट होगा और आप आउटपुट को मुद्रित भी देख सकते हैं।

लेकिन दूसरे संस्करण के लिए, मैं यह सब संख्या 0,1 से शुरू मुद्रण देख सकते हैं ...

यह एक similar discussion है के रूप में @PakkuDon

+2

यह मेरे लिए सही लग रहा है। मुझे लगता है [यह लिंक] (http://stackoverflow.com/questions/10948983/system-out-print-doesnt-send-any-output-to-eclipse-console- क्यों) आपकी पोस्ट में जोड़ने के लायक हो सकता है । – PakkuDon

+0

@PakkuDon इसमें जोड़ा गया। धन्यवाद!! – sakura

2

एक पाश निर्माण के लिए तीन बातें हैं द्वारा साझा Initialization , Condition और Increment/Decrements ये अनिवार्य फ़ील्ड नहीं हैं। जावा हमेशा कोड निष्पादित करेगा और कोई त्रुटि नहीं दिखाएगा क्योंकि हम किसी वाक्यविन्यास नियम को तोड़ नहीं रहे हैं।

यहां for(i=0;;i++) System.out.println(i) अभी भी निष्पादित किया जाएगा और परिणामस्वरूप अनंत लूप में परिणाम होगा क्योंकि हालत हमेशा वैकल्पिक भाग के रूप में माना जाता है, इसलिए अन्य दो को आराम दें।

इसलिए, हम के रूप में हम एक अनंत लूप में फंस रहे हैं System.out.println(i) बयान के बाद कोड तक पहुंचने के लिए सकेंगे।

संबंधित मुद्दे