लूप के अंत में ;
को खाली बयान के रूप में लिया जाता है, जो आपके फॉर-लूप के लिए खाली ब्लॉक के बराबर होता है। संकलक अपने कोड पढ़ रहा है के रूप में:
int i;
....
for(i=0; i<9; i++)
/* no-op */;
/* inline block with no relation to for-loop */
{
System.out.println ("Please enter a number:");
Num[i] = keyboard.nextDouble();
Sum += Num[i];
Product *= Num[i];
}
;
निकालें अपने इच्छित व्यवहार प्राप्त करने के लिए।
आपको लूप से i
बाहर की जरूरत नहीं है, तो आप for
बयान के भीतर अपनी घोषणा को स्थानांतरित कर सकते हैं।
for(int i=0; i<9; i++)
{
// `i` is only usable here now
}
// `i` is now out of scope and not usable
इस वाक्य रचना का उपयोग करते हुए जब गलत अर्धविराम ;
वर्तमान एक संकलन त्रुटि है कि आप गलत ;
पहले करने के लिए सतर्क कर दिया जाएगा पैदा करने वाला होता था। संकलक इस देखना होगा:
for(int i=0; i<9; i++)
/* no-op */;
/* inline block with no relation to for-loop */
{
System.out.println ("Please enter a number:");
Num[i] = keyboard.nextDouble(); // compile error now - `i` is out-of-scope
Sum += Num[i];
Product *= Num[i];
}
यह एक उदाहरण होगा कारण है कि यह जब संभव चर का दायरा सीमित करने के लिए अच्छा अभ्यास है।
स्रोत
2011-01-01 12:42:21
यह संकलन भी नहीं करना चाहिए। 'I' घोषित नहीं किया गया है। जब तक कि आपने शीर्ष पर कहीं भी वैश्विक रूप से घोषित नहीं किया है। –
उस तर्कसंगत से, न तो 'न्यू', 'कीबोर्ड', 'Sum', या 'product' है। –
आपको शायद अपने प्रश्न का उत्तर चुनना चाहिए। – deterb