switch~case문 - 조건문
- 식(정수 또는 char)을 사용해서 다중분기하는 명령문.
- jdk 1.7 버전부터는 식에 String 사용이 가능함.
형식)
switch(식 또는 값) {
case 값1 :
값이 1일때 실행문;
break; // switch~case 블럭 탈출
case 값2 :
값이 2일때 실행문;
break;
case 값3 :
값이 3일때 실행문;
break;
default : // 생략도 가능함.
값1 ~ 값3 이외의 값이 들어온 경우 실행문;
기본예제)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1~3 사이의 숫자 중에서 하나를 선택");
int su = sc.nextInt();
switch (su) {
case 1 :
System.out.println("입력받은 숫자는 1입니다.");
break;
case 2 :
System.out.println("입력받은 숫자는 2입니다.");
break;
case 3 :
System.out.println("입력받은 숫자는 2입니다.");
break;
default :
System.out.println("1 ~ 3 이외의 숫자입니다.");
}
sc.close();
}
예제1) 달(월)을 사용자로부터 입력 받아 해당 월에 따른 일 수 출력
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("달(월)을 입력하세요. : ");
int month = sc.nextInt();
switch(month) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
System.out.println("마지막 날은 31일입니다.");
break;
case 2 :
System.out.println("마지막날은 28일입니다.");
break;
case 4 :
case 6 :
case 9 :
case 11 :
System.out.println("마지막 날은 30일입니다.");
break;
}
sc.close();
}
예제2) 문자열로 직급을 입력 받아 해당 직급의 급여를 출력하는 프로그램
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("직급을 입력하세요. : ");
String position = sc.next();
switch (position) {
case "사장":
System.out.println("사장의 급여는 1,000만원입니다.");
break;
case "전무":
System.out.println("전무의 급여는 750만원입니다.");
break;
case "부장":
System.out.println("부장의 급여는 600만원입니다.");
break;
case "차장":
System.out.println("차장의 급여는 450만원입니다.");
break;
case "과장":
System.out.println("과장의 급여는 350만원입니다.");
break;
case "대리":
System.out.println("대리의 급여는 300만원입니다.");
break;
case "사원":
System.out.println("사원의 급여는 200만원입니다.");
break;
default:
System.out.println("존재하지 않는 직급입니다.");
break;
}
sc.close();
}
예제3) 키보드로 이름, 국어 점수, 영어 점수, 수학 점수, 자바 점수를 입력 받은 뒤 총점, 평균, 학점을 출력하는 프로그램
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 1. 키보드로 이름, 국어점수, 영어점수, 수학점수, 자바점수 입력 받자.
System.out.print("이름을 입력하세요 : ");
String name = sc.nextLine();
System.out.print("국어 점수를 입력하세요 : ");
int kor = sc.nextInt();
System.out.print("영어 점수를 입력하세요 : ");
int eng = sc.nextInt();
System.out.print("수학 점수를 입력하세요 : ");
int mat = sc.nextInt();
System.out.print("자바 점수를 입력하세요 : ");
int jav = sc.nextInt();
// 2. 총점을 구하자.
int sum = kor + eng + mat + jav;
// 3. 평균을 구하자.
float avg = sum / 4.0f;
// 4. 학점을 구하자.
String grade; // 학점을 저장할 변수
switch ((int)(avg/10)) {
case 10 :
case 9 :
grade = "A";
break;
case 8 :
grade = "B";
break;
case 7 :
grade = "C";
break;
case 6 :
grade = "D";
break;
default :
grade = "F";
break;
}
// 5. 성적을 화면에 출력해 보자.
System.out.println("이름 : " + name);
System.out.println("국어 : " + kor + "점");
System.out.println("영어 : " + eng + "점");
System.out.println("수학 : " + mat + "점");
System.out.println("자바 : " + jav + "점");
System.out.println("총점 : " + sum + "점");
System.out.printf("평균 : %.2f점\n", avg);
System.out.println("학점 : " + grade + "학점");
sc.close();
}
'Back > JAVA' 카테고리의 다른 글
[문제] while, scanner, math를 이용한 숫자 맞추기 게임 (0) | 2021.03.02 |
---|---|
반복문 - While문, do~While문 (0) | 2021.02.26 |
제어문 - if~elseif~else문 (0) | 2021.02.26 |
Scanner 클래스를 이용한 정수형 입력 처리 (0) | 2021.02.25 |
제어문 - if~else문 (0) | 2021.02.25 |