반응형
if문을 사용하여 특정 조건을 비교해서 내용부 실행을 제어할 수 있다. 그러나 if문은 종적인 관계로 비교하기 때문에 조건이 많아질수록 실행 속도는 현저하게 떨어지게 된다. 그래서 비교 구문 중에 byte, shor, char, int 자료형의 데이터 값에 대한 비교에서는 횡적인 관계로 비교할 수 있는 구문을 내놓게 되었고 그것이 'switch ~ case ~ break' 문이다. 이것은 컴파일 시에 그 위치를 JVM이 기억하기 때문에 값이 대입되는 즉시 해당 위치로 이동할 수 있다.
durldptj switch의 값으로는 byte, short, char, int의 네가지 자료형 외에는 사용할 수 없다. 당연히 case에서 비교되는 값도 이 네가지 자료형만 사용할 수 있다. 또한 case는 여러 개의 값을 비교할 수 있도록 위의 형식과 같이 중첩하여 사용할 수 있고 if문의 else와 동일하게 비교되는 값중에 switch의 값과 동일한 값이 없을 경우에 그 위치를 처리해 주는 defualt라는 구문도 있다.
switch (byte, short, char, int 자료형의 값을 나타낼 수 있는 필드나 메서드) { case 값1 : 내용부, 내용부, ……; bread; case 값2 : 내용부, 내용부, ……; bread; …… case 값n : 내용부; 내용부; ……; break; default : 내용부; 내용부; ……; } |
durldptj switch의 값으로는 byte, short, char, int의 네가지 자료형 외에는 사용할 수 없다. 당연히 case에서 비교되는 값도 이 네가지 자료형만 사용할 수 있다. 또한 case는 여러 개의 값을 비교할 수 있도록 위의 형식과 같이 중첩하여 사용할 수 있고 if문의 else와 동일하게 비교되는 값중에 switch의 값과 동일한 값이 없을 경우에 그 위치를 처리해 주는 defualt라는 구문도 있다.
| Exampe ① | System.out.print("숫자를 입력하여 주세요(0~9) : "); int x = System.in.read() - 48; switch(x) { case 0 : System.out.println("0을 입력했습니다."); break; case 1 : System.out.println("1을 입력했습니다."); break; case 2 : System.out.println("2를 입력했습니다."); break; …… case 9 : System.out.println("9를 입력했습니다."); break; default : System.out.println("0~9를 벗어난 수를 입력했습니다."); } |
| Exampe ② | System.out.print("주민번호 7번째 수를 입력하세요 : "); int x = System.in.read() - 48; switch(x) { case 9 : case 0 : year = 1800; break; case 1 : case 2 : year = 1900; break; case 9 : System.out.println("9를 입력했습니다."); break; default : System.out.println("0~9를 벗어난 수를 입력했습니다."); } |
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 제어문 (while문, do ~ while문) (0) | 2012.01.02 |
---|---|
[JAVA] 제어문 (for 문) (0) | 2011.12.28 |
[JAVA] 제어문 (if문의 3형식) (0) | 2011.12.27 |
[JAVA] 연사자 우선순위 (0) | 2011.12.19 |
[JAVA] Systme 클래스 (1) | 2011.12.19 |