정말 간단한 질문이지만이를 이해할 수는 없습니다. 아래의 (Java) 코드에서 y가 2로 계산되는 이유는 무엇입니까?+ =/- = 연산자를 사용하는 Java switch 문
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;
case 6: y -= 2;
default: y += 1;
}
정말 간단한 질문이지만이를 이해할 수는 없습니다. 아래의 (Java) 코드에서 y가 2로 계산되는 이유는 무엇입니까?+ =/- = 연산자를 사용하는 Java switch 문
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;
case 6: y -= 2;
default: y += 1;
}
그것은 기본적으로 케이스 (6)를 케이스 (4)로부터 관통 떨어지면, 그래서 증분 (새로운 값 : 3), (2)에 의한 감소율 (새로운 값 : 1) 한 다음 증분 (새로운 값 : 2).
적어도 -Xlint
을 사용하는 경우 컴파일러에서 통과에 대해 경고 했어야합니다. 직접 컴파일러 경고를 무시하고 항상 -Xlint
으로 컴파일하십시오.
대/소문자를 구분하지 마십시오. 그래서 모든 문장을 실행합니다. y = y + 1-2 + 1; 첫 번째 일치하는 경우 아래의 switch 문에서 모든 경우를
int x = 2;
int y = 2;
switch (x * 2) {
case 4:
y += 1;
break;
case 6:
y -= 2;
break;
default: y += 1;
}
것 당신은 break
를 추가하는 것을 잊었다 - 2
스위치 문은해야한다 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;
}
:
다음int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;break;
case 6: y -= 2;break;
default: y += 1;
}
y는 3
이 숙제인가? (http://meta.stackexchange.com/questions/18242/what-is-the-policy-here-on-homework) – Javier