서노썬
sun noes sun
서노썬
전체 방문자
오늘
어제
  • 카테고리 (142)
    • Java (89)
      • Day1 (20)
      • Day2 (16)
      • Day3 (4)
      • Day4 (5)
      • Day5 (2)
      • Day6 (2)
      • Day7 (4)
      • Day8 (6)
      • Day9 (3)
      • Day10 (0)
      • Day11 (0)
      • Day12 (0)
      • Day13 (3)
      • Day14 (0)
      • Day15 (0)
      • Day16 (0)
      • Day19 (0)
      • Day20 (0)
      • Day21 (2)
      • Day22 (4)
      • Day23 (2)
      • Day24 (5)
      • Day25 (4)
      • Day27 (2)
      • Day28 (3)
      • Day29 (1)
      • Day30 (1)
      • Day31 (0)
      • Day32 (0)
      • Dat33 (0)
      • Day34 (0)
      • Day35 (0)
      • Day36 (0)
    • HTML (37)
      • Day36 (20)
      • Day37 (3)
      • Day38 (2)
      • Day39 (8)
      • Day40 (3)
    • SQL (4)
      • Day40 (4)
      • Day41 (0)
      • Day42 (0)
      • Day43 (0)
      • Day44 (0)
      • Day45 (0)
    • JSP (0)
      • Day46 (0)
      • Day75 (0)
    • PYTHON (0)
      • Day75 (0)
      • Day76 (0)
    • Photo (12)

블로그 메뉴

  • 홈
  • 방명록

인기 글

최근 글

태그

  • java데이터타입
  • 자바break
  • 자바자료형
  • java자료형
  • 논리연산자
  • java메뉴입력
  • 자바
  • 자바연산자
  • 자바continue
  • Java

티스토리

hELLO · Designed By 정상우.
서노썬

sun noes sun

Java/Day4

[Java] switch case 구문

2021. 11. 3. 23:19

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();
    }
}
Colored by Color Scripter
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;
    }
}
Colored by Color Scripter
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;
        }
Colored by Color Scripter
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();
    }
}
Colored by Color Scripter
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
    'Java/Day4' 카테고리의 다른 글
    • [Java] 사용자 정의 메소드 & 예문
    • [Java] 삼항 연산자 & short circuit evaluation
    • [Java] 비트 연산자
    • [Java] 데이터 타입. 자료형에 따른 연산

    티스토리툴바