switch 조건문
- if 문과 "차이점"이라면? > if문 안의 조건식은 자유롭게 기술 가능 (범위에 대한 조건, 동등비교 등등)
-switch문은 동등비교만 가능 (동등비교할 값들만 작성) > 실행할 구문만 실행하고 자동으로 빠져나오질 못함!
(직접 break;문 작성해야함)
[표현법]
switch(동등비교할 대상자){ case 값1 : 실행코드1; break; case 값2 : 실행코드2; break; ...
* [default : 위의 값들과 모두 일치하지않을 경우 실행코드; (else와 비슷)] }
예시)
1. 정수를 입력받아 1일 경우 "빨간색입니다." 2일 경우 "파란색입니다." 3일 경우 "초록색입니다." 그외의 값 입력했을경우 "잘못입력하셨습니다."를 출력하기
- if 문 사용경우
public void method1() {
Scanner sc = new Scanner(System.in);
System.out.print("1~3사이의 정수 입력: ");
int num = sc.nextInt();
if(num == 1 ) {
System.out.println("빨간색입니다.");
} else if(num == 2) {
System.out.println("파란색입니다."); }
else if(num == 3) {
System.out.println("초록색입니다."); }
else { System.out.println("잘못입력하셨습니다."); }
}
- switch 문 사용
switch (num) {
case 1:
System.out.println("빨간색입니다.");
break;
case 2:
System.out.println("파란색입니다.");
break;
case 3:
System.out.println("초록색입니다.");
break;
default:
System.out.println("잘못입력하셨습니다.");
}
}
2. 구매하고자하는 과일을 입력받아 가격을 출력 하기
public void method2() {
Scanner sc = new Scanner(System.in);
System.out.print("구매하고자하는 과일(사과/바나나/복숭아) 입력: ");
String fruit = sc.nextLine();
int price = 0;// 과일의 가격을 보관할 변수(int형의 기본값 0)
switch (fruit) {
case "사과":
price = 1000;
break;
case "바나나":
price = 2000;
break;
case "복숭아":
price = 3000;
break;
default:
System.out.println(fruit + "은(는) 판매하는 과일이 아닙니다.");
return;
}
System.out.printf("%s의 가격은 %d원입니다.", fruit, price);
// xx의 가격은 xxxxx원입니다.
}
******break없는 switch문을 사용하는 예시
public void method3() {
Scanner sc = new Scanner(System.in);
//등급 별 권한
//1. 일기권한, 글쓰기권한, 관리권한
//2. 읽기권한, 글쓰기견환
//3 읽기권한
System.out.print("등급(정수): ");
int level = sc.nextInt();
switch(level) {
case 1 : System.out.println("관리권한");
case 2 : System.out.println("글씨기권한");
case 3 : System.out.println("읽기권한");
}
}
3. 성별을 입력받아 'M' 이면 "남학생" / 'F'이면 여학생을 출력
public void method4() {
Scanner sc = new Scanner(System.in);
System.out.print("성별(M/F) : ");
char gender = sc.nextLine().charAt(0);
switch(gender) {
case 'm' : case 'M' : System.out.println("남학생"); break; //gender == 'm' || gender == 'M'
case 'f' : case 'F' : System.out.println("여학생"); break;
default : System.out.println("성별을 잘못입력하셨습니다.");
}
}
4. 사용자에게 달을 입력받아 해당 달의 마지막 날짜 출력
public void method5() {
//사용자에게 달을 입력받아 해당 달의 마지막날짜 출력
Scanner sc = new Scanner(System.in);
System.out.print("1월 ~ 12월 까지 중 하나를 입력(정수로) : ");
int month = sc.nextInt();
//1,3,5,7,8,10,12 => 31일
//4,6,9,11 => 30일
//2 => 28일 또는 29일
switch(month) {
case 1 : case 3: case 5: case 7 :case 8 :case 10: case 12 : System.out.println("입력하신 월은 31일까지입니다.");
break;
case 4 : case 6: case 9 : case 11 : System.out.println("입력하신 월은 30일까지입니다.");
break;
case 2 : System.out.println("입력하신 월은 28일 또는 29일까지입니다.");
break;
default : System.out.println("반드시 1~12월까지를 입력하셔야합니다.");
}
}
}
'JAVA' 카테고리의 다른 글
4_4. 제어문 _ 반복문 while, do-while (0) | 2022.10.21 |
---|---|
4_3 제어문 _반복문 for문 (0) | 2022.10.20 |
4_1. 제어문(Control) _ 조건문 if (0) | 2022.10.18 |
2_4 Cast(형변환)_ 자동형변환과 강제형변환 (0) | 2022.10.18 |
2_3 Printf (0) | 2022.10.18 |