दिलचस्प पोस्ट
पाठ के बीच सिमेंटिक लिंक की कल्पना करने के लिए एक HTML पृष्ठ पर तीर आकर्षित करना ClearCase में, मैं एक फ़ाइल के पुराने संस्करण को एक स्थिर दृश्य में कैसे देख सकता हूँ, कमांड लाइन से? जावा में बड़ी फ़ाइलों को पढ़ें क्यों नहीं logcat मेरे Android में कुछ भी दिखता है? Outlook में एक नया मेल प्राप्त होने के बाद चलाने के लिए मैक्रो कैसे ट्रिगर करता है? मैं दो सरणियों में मिलान वाले मान कैसे पा सकता हूं? कोड से डेटा एनोटेशन कैसे प्राप्त करें? (प्रोग्राम के रूप में) मैट्रिक्स तत्वों को हटाकर = बनाम रिसाइजिंग मैट्रिक्स एपोस्ट्रोफी के लिए एचटीएमएल कोड भू फेंसिंग – पॉइंट के अंदर / बाहर बहुभुज सी # में ऑब्जेक्ट की एक प्रति बनाना SpannableStringBuilder कई फोंट / पाठ आकार आदि के साथ स्ट्रिंग बनाने के लिए उदाहरण? ग्रहण / बिलाव: तैनात किसी भी अधिक काम नहीं करता (क्लासनोटफ़ाउंड अपवाद) जावास्क्रिप्ट में चलने वाले चर का एक उदाहरण REST प्रमाणन योजनाओं की सुरक्षा

जबकि इस पाश के साथ क्या गलत है?

boolean r = false ; int s = 0 ; while (r == false) ; { s = getInt() ; if (!(s>=0 && s<=2)) System.out.println ("try again not a valid response") ; else r = true ; } 

टेक्स्ट कभी भी खुद को प्रदर्शित नहीं करता है जब 3 या 123 दर्ज किया जाता है और लूप समाप्त नहीं होता है क्या यहाँ गलत है?

Solutions Collecting From Web of "जबकि इस पाश के साथ क्या गलत है?"

हालत के बाद आपके पास एक अर्धविराम है जब आप अपने लिए एक ब्लॉक निर्दिष्ट करने के लिए ब्रेसिज़ का उपयोग while हैं, तो आप अर्धविराम का उपयोग नहीं करते हैं।

हटाए ';' थोड़ी देर के बाद।

दूसरों ने बग को इंगित किया है, लेकिन आपका कोड अन्य तरीकों से डरावना है जो अंततः आपको भ्रमण करेगा:

 if (!(s>=0 && s<=2)) System.out.println ("try again not a valid response") ; else r = true ; 

यह बुरा है क्योंकि आप आसानी से एक या अधिक खंड के मामले में चलाने के लिए एक से अधिक कथन का इरादा कर सकते हैं घुंघराले ब्रेसिज़ का उपयोग करें और एक पंक्ति पर सशर्त बयान रखने से बचें:

 if (!(s>=0 && s<=2)) { System.out.println ("try again not a valid response"); } else { r = true; } 

मुश्किल से देखने वाली बगों को पढ़ने के लिए आसान और कम होने की संभावना है

जबकि (आर == गलत)

होना चाहिए

जबकि (! r)

अर्धविराम के बारे में बाकी सभी ने क्या कहा, इसके बावजूद मुझे लगता है कि इसके साथ गलत है 🙂

+1 करने के लिए डैनियल DiPaolo मैंने सोचा था कि मैं ऐसा क्यों बताता हूं कि यह क्यों मामला है।

जबकि जावा में लूप दो तरह से एक में लिखे जा सकते हैं। यदि लूप के शरीर में सिर्फ एक पंक्ति होती है, तो आप उन्हें एक लघु-हाथ फैशन में लिख सकते हैं:

 while (true) System.out.println("While loop"); 

यह प्रोग्राम समाप्त होने तक कंसोल पर "while loop" प्रिंट करेगा। दूसरा विकल्प है ब्रेसिज़ के बीच लूप बॉडी निर्दिष्ट करना, जैसा आपने ऊपर किया है:

 int i = 0; while (i < 10) { System.out.println("i = " + i); i++; } 

यह एक अलग रेखा पर प्रत्येक "i = 0", "i = 1", …, "i = 9" प्रिंट करेगा।

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

यदि आप अपने उदाहरण में लूप में स्थिति को नकारने के लिए थे, यानी,

 boolean r = false ; int s = 0 ; while (r != false) ; { s = getInt() ; if (!(s>=0 && s<=2)) System.out.println ("try again not a valid response") ; else r = true ; } 

(ध्यान दें कि मैंने गलत तरीके से सेमीकोलन छोड़ा है), आपको पता चल जाएगा कि आपका इच्छित लूप बॉडी ठीक एक बार निष्पादित करेगा, क्योंकि लूप कभी भी नहीं चलता।

अन्य टिप्पणियों के अलावा, आप को भी अगर को बदलना चाहिए

 if (s < 0 || s > 2) 

यह इस तरह से और अधिक समझ में आता है।

असंबंधित उत्तर, मैं सचमुच आपको सन की शैली दिशा-निर्देशों का पालन करने की सलाह देता हूं।

 boolean r = false ; int s = 0 ; while (r == false) { s = getInt() ; if (!(s>=0 && s<=2)) { System.out.println ("try again not a valid response") ; } else { r = true ; } } 

आप r वैरिएबल और if / else कंडीशन से छुटकारा पा सकते हैं यदि आप परिणाम को लूप में स्वयं का मूल्यांकन करते हैं

 int s = 0; while( ( s = getInt() ) < 0 || s > 2 ) { System.out.println( "Try again, not a valid response"); }