switch도 if문과 마찬가지로 조건 제어문이다.
다만 if 문과의 차이점은 if문은 조건의 범위를 지정할 수 있었다.
하지만 switch문은 확실한 값의 조건(변수)이여야 된다.
switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능의 if문보다 코드가 간결하다.
switch문
switch(동등 비교할 대상자) {
case 값1 : 실행코드 1; break;
case 값2 : 실행코드 2; break;
..
default : 실행코드3;
}
비교할 대상자 == 값1, 실행코드 1을 실행하고 break를 받아 빠져나온다.
1) 연습문제(1)
public void method1() {
// 1~3 사이의 정수를 입력받아 1인경우 "빨간색입니다" 2인경우 "파란색입니다" 3인경우 "초록색입니다"
// 잘못입력하였을 경우 " 잘못입력하였습니다. "
Scanner sc = new Scanner(System.in);
System.out.println("1~3 사이의 숫자를 입력하시오");
int num = sc.nextInt();
switch (num) {
case 1:
System.out.println("빨간색입니다");
break;
case 2:
System.out.println("파란색입니다");
break;
case 3:
System.out.println("초록색입니다");
break;
default:
System.out.println("잘못입력하셨습니다");
}
}
case 뒤에 break가 붙어 있는 이유는 다음 case를 실행하지 않고 swtich 문을 빠져나가기 위해서 이다.
break가 없다면 다음 case가 연달아 실행되는데, 이때는 case 값과는 상관없이 실행된다.
2) 연습문제(2)
public void method2() {
// 정수 2개와 연산기호문자 1개를 입력받아서 연산기호문자에 해당하는 계산을 수행하고 출력하세요
Scanner sc = new Scanner(System.in);
System.out.println("정수 1 :");
int num1 = sc.nextInt();
System.out.println("정수 2 :");
int num2 = sc.nextInt();
sc.nextLine();
System.out.println("연산기호 + - * / :");
char op = sc.nextLine().charAt(0);
int result = 0;
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 * num2;
break;
default:
System.out.println("연산자를 잘못 입력하셨습니다");
return;
}
System.out.println(num1 + " " + op + " " + num2 + " = " + result);
}
3) 연습문제(3)
public void method3() {
// 1~12월 까지 입력받아 해당하는 달의 마지막 날짜를 출력하세요.
Scanner sc = new Scanner(System.in);
System.out.println("달을 입력하시오");
int num = sc.nextInt();
switch (num) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("입력하신 월은 31일까지 입니다."); // break 를 안하면 쭉 진행됨
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월까지를 입력해야 합니다.");
return;
}
System.out.println("좋은하루보내세요 ^^ ");
}
break 코드를 작성하지 않았을때, 계속 진행되는 모습을 보인다.
'이공계전문기술연수 > Java' 카테고리의 다른 글
<이공계전문기술연수> 12. Java 반복문: while문 / break문 (0) | 2019.08.13 |
---|---|
<이공계전문기술연수> 11. Java 반복문: for문 // Math.random() (0) | 2019.08.13 |
< 이공계전문기술연수> 9. Java 조건문 if문 (0) | 2019.08.11 |
< 이공계전문기술연수> 8. Java 연산자 / 증감연산자/ 삼항연산자 (0) | 2019.08.07 |
< 이공계전문기술연수> 7. Java 변수와 시스템 입출력 / Scanner (0) | 2019.08.07 |