वास्तव में सरल सवाल है, लेकिन इसे समझ नहीं सकता है। Y नीचे (जावा) कोड में 2 की गणना क्यों करता है?जावा स्विच स्टेटमेंट + =/- = ऑपरेटर
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;
case 6: y -= 2;
default: y += 1;
}
वास्तव में सरल सवाल है, लेकिन इसे समझ नहीं सकता है। Y नीचे (जावा) कोड में 2 की गणना क्यों करता है?जावा स्विच स्टेटमेंट + =/- = ऑपरेटर
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;
case 6: y -= 2;
default: y += 1;
}
यह डिफ़ॉल्ट के मामले से 6 मामले में 4 से के माध्यम से गिर जाता है, तो यह वृद्धि कर देता है (नई मूल्य: 3), 2 से decrements (नई मूल्य: 1) और फिर वृद्धि कर देता है (नई मूल्य: 2)।
संकलक आपको कम से कम -Xlint
का उपयोग करने के बारे में चेतावनी देना चाहिए था। कभी भी हाथ से कंपाइलर चेतावनियों को अनदेखा न करें, और हमेशा -Xlint
के साथ संकलित करें :)
आपने मामले के बाद ब्रेक नहीं जोड़ा। तो यह सभी कथन निष्पादित करता है। वाई = वाई + 1-2 + 1; 2
स्विच बयान होना चाहिए -
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;break;
case 6: y -= 2;break;
default: y += 1;
}
तो y 3
होगा आप break
जोड़ने के लिए भूल गया: पहला मिलान मामले नीचे
int x = 2;
int y = 2;
switch (x * 2) {
case 4:
y += 1;
break;
case 6:
y -= 2;
break;
default: y += 1;
}
सभी मामलों एक स्विच बयान में जब तक आप break;
कथन जोड़ते हैं तब तक निष्पादित किया जाएगा।
आप y होने की उम्मीद तो 1
आपको बस इतना करना:
int x = 2;
int y = 2;
switch (x * 2){
case 4: y += 1;
break;
case 6: y -= 2;
break;
default: y += 1;
}
इस अपना होमवर्क है? (Http://meta.stackexchange.com/questions/18242/what-is-the-policy-here-on-homework) – Javier