इस सरल कोड पर विचार करें:
// E1 सार्वजनिक शून्य doTest (स्ट्रिंग पैटर्न) { इंट काउंटर = 0; जबकि (काउंटर & lt; 3) {काउंटर = काउंटर ++; } System.out.println ("संपन्न"); } यह एक अनंत लूप का कारण बनता है
हालांकि यदि काउंटर को वेतन बढ़ाने वाले बयान इस प्रकार लिखा जाता है:
E2 काउंटर = ++ काउंटर; या यह
E3 काउंटर ++; यह सामान्य रूप से समाप्त होता है मैं समझता हूं कि संस्करण में असाइनमेंट के बाद वृद्धि बढ़ जाती है जो बताता है कि ई 2 क्यों काम करता है, लेकिन मैंने सोचा था कि जावा ने वेरिएबल में वृद्धि के परिणाम निर्दिष्ट किए जो ई 3 में बढ़ते हैं। इसलिए मैं इस बारे में परेशान हूँ कि ई 1 क्यों विफल रहता है लेकिन ई 3 नहीं करता।
काउंटर = काउंटर ++; उपरोक्त कोड का काउंटर पर कोई प्रभाव नहीं पड़ता है। यह प्रभावी रूप से समान है: int temp = counter; काउंटर ++; काउंटर = अस्थायी; इसलिए, काउंटर का मान बिल्कुल भी बदल नहीं रहा है। दूसरी ओर, यदि आप उपयोग करते हैं:
काउंटर = ++ काउंटर; काउंटर पहले बढ़ता है, और फिर काउंटर को फिर से सौंपा जाता है। मूलतः, आप असाइनमेंट भाग की अनदेखी कर सकते हैं, और इसे बस इसे रख सकते हैं:
counter ++; // या ++ काउंटर
No comments:
Post a Comment