일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 글자뒤집기
- 클릭해제
- 마우스 오른쪽 버튼
- 웹퍼블리셔
- postcodify
- 무료 웹 호스팅
- 마우스오른쪽
- 우체국 우편번호
- 무료 홈페이지 제작
- 무료제작
- 무료사이트
- 우편번호 API
- 무료 홈페이지
- 웹퍼블리싱
- 무료호스팅
- 퍼빌리셔
- 새우편번호
- 문자열 뒤집기
- php호스팅
- 웹호스팅
- 무료홈페이지
- 자바스크립트
- 홈페이지제작
- php
- 복사방지
- 무료
- 무료서버
- 무료 호스팅
- 호스팅
- 자바키워드
Archives
- Today
- Total
Developer Factory
08_11. JAVA - 흐름 제어문 : 조건문 - switch 본문
package com.eomjinyoung.java.basic.step03;
//////////////////////////////////////////////////////
//주제 : 흐름 제어문 : 조건문 - switch
//////////////////////////////////////////////////////
/* << 조건문 : switch >>
* switch(식) {
* case 상수식1: 문장1
* break;
* case 상수식2: 문장2
* break;
* case 상수식3: 문장3
* break;
* default: 문장0
* }
*
* : '식'의 결과값이 '상수식1' 이면 '문장1'을 수행하고 'break'문은 switch문을 빠져나간다.
* '식'의 결과값이 '상수식2' 이면 '문장2'을 수행하고 'break'문은 switch문을 빠져나간다.
* '식'의 결과값이 '상수식3' 이면 '문장3'을 수행하고 'break'문은 switch문을 빠져나간다.
* 만약, '식'의 결과값에 해당하는 경우가 없다면 'default:' 의 '문장0' 를 실행한다.
*
* - '식' 과 '상수식' 에는 int 형 값만 올 수 있다.
* - JDK7에서는 String 값이 올 수 있다.
*/
public class Control02
{
public static void main(String[] args)
{
/* 테스트 1 : 기본 테스트
// a 값을 10 또는 20, 그외의 숫자를 주어 테스트 해보라!
int a = 400;
switch(a * 5) {
case 50:
System.out.println("a * 5는 50입니다.");
System.out.println("따라서, a는 10입니다.");
break;
case (20 * 100):
System.out.println("a * 5는 2000입니다.");
System.out.println("따라서, a는 400입니다.");
break;
default:
System.out.println("a는 5의 배수이겠지요");
a = 0;
}
*/
/* 테스트 2 : 만약 '식'이 int형이 아닌 다른 data type일 경우
// - byte, short, char 인 경우 연산시에 int형으로 취급되기 때문에 문제가 없다.
// - long, float, double, boolean 등 int형이 아닌 type은 올 수 없다.
long a = 10L;
switch(a) {
case 10L:
System.out.println("컴파일 될까요?");
}
// Error : '식'에는 int 값 외에 올 수 없다.
// 위의 예제를 long type 외에 float, double, boolean을 대입시켜보라!
*/
/* 테스트 3 : char 인 경우,
// 문제없다! 어차피 char 형도 정수값을 의미하고, 'A'의 의미도 [대문자 A 에 대응하는
// 유니코드 숫자] 를 의미하기 때문이다. 결국은 int 형 값인 것이다.
char c = 'A';
switch(c) {
case 'A':
System.out.println("A 입니다.");
break;
case 'B' + 'C':
System.out.println("B 입니다.");
break;
}
// 'B' + 'C', 허~~~ 문자도 더할수가 있나요?
// - 이것의 의미는 'B'에 대응하는 유니코드 값(0x0042) 와 'C'에 대응하는
// 유니코드 값(0x0043)을 더하는 것이기 때문이다. 즉, 0x0042 + 0x0043 = 0x0085
*/
/* 테스트 4 : break 문이 없는 경우
// a 값이 3일경우, 2, 1, 그외의 수 일경우를 테스트 해보라!
int a = 3;
switch(a) {
case 3:
System.out.println("[SCJP 자격증]이 있습니다.");
case 2:
System.out.println("[정보처리 자격증]이 있습니다.");
case 1:
System.out.println("[전자상거래 자격증]이 있습니다.");
default:
System.out.println("[운전면허증]이 있습니다.");
}
// case 문은 break 문을 만날 때 까지 수행하기 때문에 사용시 유의해야 한다.
// 오히려 위의 예처럼 '값에 따라 결과를 누적할 경우' break 문을 빼는 경우가 있다.
*/
}
}
'Developer > Java' 카테고리의 다른 글
08_13. JAVA - 흐름 제어문 : 반복문 - for (0) | 2014.07.03 |
---|---|
08_12. JAVA - 흐름 제어문 : 반복문 - do... while, while (0) | 2014.07.03 |
08_10. JAVA - 흐름 제어문 : 조건문 - if (0) | 2014.07.03 |
08_09. JAVA - 할당 연산자(Assignment Operator) (0) | 2014.07.03 |
08_08. JAVA - 조건 연산자(Conditional Operator) (0) | 2014.07.03 |