JAVA

[JAVA] 제어문 - 조건문 switch

(งᐛ)ว 2023. 8. 16. 23:39
728x90
728x90

제어문 : 프로그램의 흐름을 제어하는 문법 (**문법에 들어가는 조건식은 비교,논리연산자)

            조건문 : 조건이 참일 때 실행여부 결정 if, switch

            반복문 : 조건이 참일 때 명령을 반복 for, while


switch문

switch(비교값) {

case 조건값1 :

    비교값과 조건값1이 일치할 때 실행할 문장

    break;

case 조건값2 :

    비교값과 조건값2가 일치할 때 실행할 문장

    break;

case 조건값3 :

    비교값과 조건값3이 일치할 때 실행할 문장

    break;

    ...

default :

    비교값과 조건값이 모두 일치하지 않을 때 실행할 문장

    break;

}

 

**switch문 특징

if문은 조건에 따라 true,false로 결정되는데 switch문은 값의 비교에 따라 결정되는 1개의 값만 들어와야 한다.

특정 값을 바로 찾아 들어가기 때문에 속도가 빠르다.

비교값과 조건값의 타입은 반드시 일치해야 한다.

case의 조건값은 중복될 수 없다.

switch문의 비교값으로 사용 가능한 자료형 : 정수(byte, short, int), 문자형(char), 문자열(String)

 

 

int n = 3;

switch(n) {

case 1 :

System.out.println("1.게임시작");

break;

case 2 :

System.out.println("2.게임소개");

break;

case 3 :

System.out.println("3.게임종료");

break;

default :

System.out.println("메뉴 선택이 올바르지 않습니다.");

break;

}

//3.게임종료

 

 

String str = "홍";

switch(str) {

case "박" :

System.out.println("박길동");

break;

case "이" :

System.out.println("이길동");

break;

case "김" :

System.out.println("김길동");

break;

case "홍" :

System.out.println("홍길동");

break;

}

//홍길동

 

 

**if vs switch

if문은 범위에 따른 조건을 비교하는데 효율적이고 (ex. 성적등급나누기)

switch문은 하나의 값에 따라 조건을 비교하는데 효과적이다. (ex. 메뉴선택만들기)

 
 

//Q. 두 정수형 변수를  임의의 값으로 초기화 하고 산술연산자 기호를 담을 문자열 변수를 만든다.

//switch문을 이용하여 두 정수의 사칙연산을 수행하는 코드를 작성해보자.

 

int a = 12;

int b = 4;

String cal="-";

 

switch(cal) {

case "+" :

System.out.printf("%d+%d=%d",a,b,a+b);

break;

case "-" :

System.out.printf("%d-%d=%d",a,b,a-b);

break;

case "*" :

System.out.printf("%d*%d=%d",a,b,a*b);

break;

case "/" :

System.out.printf("%d/%d=%d",a,b,a/b);

break;

default :

System.out.println("잘못된 연산기호");

}

//12-4=8

 

 

//Q. 정수형 변수 month에 달을 입력받고 해당 달이 며칠까지 있는지 switch문으로 출력하세요. 단, break는 3번만 쓸 것

//ex. 3월은 31일까지 있습니다.

 

Scanner sc = new Scanner(System.in);

System.out.print("달을 입력하세요 : ");

int month = sc.nextInt();

 

switch (month) {

case 2:

System.out.printf("%d월은 28일까지 있습니다.",month);

break;

case 1,3,5,7,8,10,12:

System.out.printf("%d월은 31일까지 있습니다.",month);

break;

case 4,6,9,11:

System.out.printf("%d월은 30일까지 있습니다.",month);

break;

}

728x90

'JAVA' 카테고리의 다른 글

[JAVA] 제어문 - 반복문 while  (0) 2023.08.17
[JAVA] 제어문 - 반복문 for  (0) 2023.08.17
[JAVA] 제어문 - 조건문 if  (0) 2023.08.12
[JAVA] Scanner  (0) 2023.08.12
[JAVA] printf와 이스케이프 문자  (0) 2023.08.12