मैं उलझन में हूं कि कक्षा के लिए मेरे कोड में क्या काम नहीं कर रहा है। मैं प्रत्येक लूप के लिए सरणी मानों को बदलने का प्रयास कर रहा हूं, और यह प्रत्येक लूप के लिए सही ढंग से प्रिंट करता है लेकिन बाद में सही मानों को संग्रहीत नहीं करता है। मुझे उम्मीद है कि दोनों परिणाम {2.0, 4.0, 6.0, 8.0, 10.0} होंगे, लेकिन दूसरा प्रिंट {10.0, 2.0, 3.0, 4.0, 5.0} दिखाता है।

double speed [] = {1,2,3,4,5};
for(double each : speed){
    int i = 0;
    each *= 2;
    speed[i] = each;
    i++;
}

for(double each : speed){
    System.out.println("\n" + each);
}
-1
DJ Reedy 13 जुलाई 2018, 10:40
3
प्रत्येक पुनरावृत्ति पर i को 0 पर सेट करना निश्चित रूप से मदद नहीं करता है
 – 
Federico klez Culloca
13 जुलाई 2018, 10:42

3 जवाब

आप लूप के अंदर i घोषित करते हैं, इसलिए i++ का कोई प्रभाव नहीं पड़ता है, इसे प्रत्येक पुनरावृत्ति पर 0 से पुन: प्रारंभ किया जाता है।

3
Federico klez Culloca 13 जुलाई 2018, 10:46

जैसा कि एंड्रिया ने अपने उत्तर में कहा था, समस्या यह है कि आप प्रत्येक पुनरावृत्ति पर i पुनः घोषित कर रहे हैं। तो आप वास्तव में क्या चाहते हैं

double speed [] = {1,2,3,4,5};

int i = 0;
for(double each : speed){
    each *= 2;
    speed[i] = each;
    i++;
}

for(double each : speed){
    System.out.println("\n" + each);
}

लेकिन, जब तक कि यह एक खिलौना उदाहरण नहीं है, यह IMHO, सही निर्माण नहीं है। चूँकि आपको उस सूचकांक तक पहुँचने की आवश्यकता है जिस पर आप पुनरावृति कर रहे हैं, और speed एक साधारण सरणी है, एक सामान्य for शायद वही है जिसकी आपको वास्तव में आवश्यकता है। इसलिए

double speed [] = {1,2,3,4,5};
for(int i = 0; i < speed.length; i++){
    speed[i] *= 2;
}

for(double each : speed){
    System.out.println("\n" + each);
}
0
Federico klez Culloca 13 जुलाई 2018, 10:56

हाँ, आउटपुट सही है। लेकिन अगर आप {2.0, 4.0, 6.0, 8.0, 10.0} प्रिंट करना चाहते हैं, तो कोड होना चाहिए

double speed [] = {1,2,3,4,5};
    int i = 0;
    for(double each : speed){           
        each *= 2;
        speed[i] = each;
        i++;
    }
    for(double each : speed){
        System.out.println("\n" + each);
    }

यानी वैरिएबल i को प्रत्येक के लिए लूप के बाहर इनिशियलाइज़ किया जाना चाहिए।

0
Pawan Kumar 13 जुलाई 2018, 10:58