티스토리 뷰

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가 그대로 실행된다는 점이다.

'ocajp 자격증 (Oracle Certified Associate Ja' 카테고리의 다른 글

자바 String toString()  (0) 2020.03.03
ocjap 문제 해설 - extends 76  (0) 2020.03.02
자바 switch case  (0) 2020.03.02
ocjap 문제 해설 - DoWhile 84  (0) 2020.03.02
ocjap 문제 해설 - Array86  (0) 2020.03.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함