1. switch case 구문
(1) 메뉴 입력받아 출력하기
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
32
33
|
import java.util.Scanner;
class Test
{
public static void main(String[] args)
{
int menu=0;
Scanner sc = new Scanner(System.in);
System.out.println("Menu");
System.out.println("1.피자");
System.out.println("2.스파게티");
System.out.println("3.햄버거");
System.out.println("4.스프");
System.out.print("선택 : ");
menu = sc.nextInt();
switch(menu)
{
case 1:
System.out.println("당신은 피자를 선택하셨습니다.");
case 2:
System.out.println("당신은 스파게티를 선택하셨습니다.");
case 3:
System.out.println("당신은 햄버거를 선택하셨습니다.");
case 4:
System.out.println("당신은 스프를 선택하셨습니다.");
default:
System.out.println("당신은 잘못 선택하셨습니다.");
}
sc.close();
}
}
|
cs |
- 이렇게하면 메뉴를 1개만 선택하더라도 선택한 메뉴의 아래에 위치한 case까지 모두 실행문이 출력된다.
2번을 선택시 '당신은 스파게티를 선택하셨습니다.' 만 출력되는 것이 아니라
당신은 스파게티를 선택하셨습니다.
당신은 햄버거를 선택하셨습니다.
당신은 스프를 선택하셨습니다.
당신은 잘못 선택하셨습니다.
이렇게 모든 메뉴에 대한 실행문이 출력되는 것이다.
(2) 메뉴 입력받아 출력하기 - 수정
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
32
33
34
35
36
37
|
import java.util.Scanner;
class Test
{
public static void main(String[] args)
{
int menu=0;
Scanner sc = new Scanner(System.in);
System.out.println("Menu");
System.out.println("1.피자");
System.out.println("2.스파게티");
System.out.println("3.햄버거");
System.out.println("4.스프");
System.out.print("선택 : ");
menu = sc.nextInt();
switch(menu)
{
case 1:
System.out.println("당신은 피자를 선택하셨습니다.");
break;
case 2:
System.out.println("당신은 스파게티를 선택하셨습니다.");
break;
case 3:
System.out.println("당신은 햄버거를 선택하셨습니다.");
break;
case 4:
System.out.println("당신은 스프를 선택하셨습니다.");
break;
default :
System.out.println("당신은 잘못 선택하셨습니다.");
}
sc.close;
}
}
|
cs |
- 위의 1번처럼 선택한 메뉴에 대한 실행문만 출력하고 식을 종료시키기 위해서는 실행문 출력 후 식을 종료시키기 위해 break; 를 주면 된다.
- default의 경우 마찬가지로 break;를 줘도 되지만, 위치상 가장 마지막 case는 이후에 출력될 실행문이 없기 때문에 break; 를 굳이 적어주지 않아도 된다. (case 실행문 제일 마지막 문장에서는 break; 굳이 필요하지 않음.)
(3) 출력값이 동일한 경우 case를 묶어서 사용
1
2
3
4
5
6
7
8
|
switch(menu)
{
case 1:
case 2:
case 3:
System.out.println("유지보수 중입니다. 잠시 후 재접속 해주세요..");
break;
}
|
cs |
- case 마다 나누지 않고 동일한 출력값을 줘도 되는 경우 case마다 출력문과 break를 따로 주는 것보다 한 번에 출력값을 주는 것이 데이터 용량을 더 효율적으로 사용하는 것이기 때문에 동일한 출력값의 경우 이렇게 묶어서 사용한다.
- 1, 2, 3 의 자리에는 정수형 자료형 byte, short, int, long과 문자 자료형 char가 올 수 있다.
- case 와 숫자는 붙여쓰면 안되고 띄어서 써줘야 한다.
(4) 메뉴 입력받아 출력하기 (switch case문을 if문으로 바꿔주기)
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
32
|
import java.util.Scanner;
class Test
{
public static void main(String[] args)
{
int menu=0;
Scanner sc = new Scanner(System.in);
System.out.println("Menu");
System.out.println("1.피자");
System.out.println("2.스파게티");
System.out.println("3.햄버거");
System.out.println("4.스프");
System.out.print("선택 : ");
menu = sc.nextInt();
if(manu==1)
System.out.println("당신은 피자를 선택하셨습니다.");
else if(menu==2)
System.out.println("당신은 스파게티를 선택하셨습니다.");
else if(menu==3)
System.out.println("당신은 햄버거를 선택하셨습니다.");
else if(menu==4)
System.out.println("당신은 스프를 선택하셨습니다.");
else
System.out.println("당신은 잘못 선택하셨습니다.");
}
sc.close();
}
}
|
cs |
'Java > Day4' 카테고리의 다른 글
[Java] 사용자 정의 메소드 & 예문 (0) | 2021.11.04 |
---|---|
[Java] 삼항 연산자 & short circuit evaluation (0) | 2021.11.04 |
[Java] 비트 연산자 (0) | 2021.11.04 |
[Java] 데이터 타입. 자료형에 따른 연산 (0) | 2021.11.04 |