ocajp 자격증 (Oracle Certified Associate Ja
ocjap 문제 및 해설 - Switch Case 78
xemaker
2020. 3. 2. 19:43
public class Switch78 {
public static void main(String[] args) {
int wd=0;
String days[]= {"sun","mon","wed","sat"};
for(String s:days) {
switch(s) {
case "sat":
case "sun":
wd-=1;
break;
case "mon":
wd++;
case "wed":
wd+=2;
}
}
System.out.println(wd);
}
}
What is the result?
A. 3
B. 4
C. -1
D. Compilation fails.
정답: A
결과:
3
해설:
아래처럼 찍어보면 이해가 쉽다. switch case를 쓸때 주의할 점이 break가 없는 case에서는 아래 case가 그대로 실행된다는 점이다.
public class Switch78 {
public static void main(String[] args) {
int wd=0;
String days[]= {"sun","mon","wed","sat"};
for(String s:days) {
System.out.println("s="+s);
System.out.println("Before wd="+wd);
switch(s) {
case "sat":
System.out.println("wd at sat="+wd);
case "sun":
wd-=1;
System.out.println("wd at sun="+wd);
break;
case "mon":
wd++;
System.out.println("wd at mon="+wd);
case "wed":
wd+=2;
System.out.println("wd at wed="+wd);
}
System.out.println("After wd="+wd);
System.out.println();
}
System.out.println(wd);
}
}
결과:
s=sun
Before wd=0
wd at sun=-1
After wd=-1
s=mon
Before wd=-1
wd at mon=0
wd at wed=2
After wd=2
s=wed
Before wd=2
wd at wed=4
After wd=4
s=sat
Before wd=4
wd at sat=4
wd at sun=3
After wd=3
3
해설:
switch case를 쓸때 주의할 점이 break가 없는 case에서는 아래 case가 그대로 실행된다는 점이다.