Backend/JAVA

JAVA 코딩 제어문 - 선택문 : switch ~ case문

쏠솔랄라 2023. 2. 3. 19:16

 

 

제어문

 

: 코드의 흐름을 제어하는 문장(문법)

 

코드의 일정 부분을 선택하여 실행하거나

코드의 일정 부분을 반복하여 실행하는 제어문

 

 

제어문의 종류

 

조건문

: if ~ else문

조건식의 결과가 참과 거짓에 따라 실행 내용을 선택하여 실행하는 제어문

조건문 설명 : https://developernew.tistory.com/13

 

선택문

: swich ~ case문

값에 따라 실행 내용을 선택하여 실행

선택문 설명 : https://developernew.tistory.com/14

 

반복문

: while, for, do ~ while

코드의 일정 부분을 반복하여 실행하는 제어문

조건식이 [참]일 동안 반복하여 실행한다 ; [거짓]이 될 때 종료함

반복문 설명: https://developernew.tistory.com/18

 

 


 

 

선택문 : switch ~ case문

 

: 값에 따라 실행 내용을 선택하여 실행하는 제어문

 

공간이 가지고 있을 값의 경우의 수를 모두 case문으로 작성해 놓는다

공간의 값에 따라서 해당 case문을 실행하는 형태

 

형식

switch( (데이터)공간 ) {

case 상수1:

실행 내용;

case 상수2:

실행 내용;

case 상수3:

실행 내용;

...

default:

실행내용;

}

 

case문의 상수는 반드시 byte, short, int, char, String 중 하나의 데이터 타입이어야 한다

공간은 데이터를 저장할 수 있는 공간이어야 한다

일반적으로 변수를 사용

계산식이 들어가도 상관없으나 최종적인 값의 형태는 byte, short, int, char, String 중 하나의 데이터 타입이어야 한다

default 는 if문의 else와 비슷한 역할을 한다

 

break;

if문을 제외한 가장 처음 만나는 중괄호를 벗어날 때 사용하는 키워드

if문을 제외한 제어문에서 실행 흐름(루프)으로부터 벗어나려 할 때 사용하는 흐름제어문

 

 


 

 

Exercise 1

 

import java.util.Scanner;

public class Test01 {

public static void main(String[] args) {

 

Scanner sc = new Scanner(System.in);

 

System.out.print("국어 점수 입력 : ");

int kor = sc.nextInt();

System.out.print("영어 점수 입력 : ");

int eng = sc.nextInt();

System.out.print("수학 점수 입력 : ");

int mth = sc.nextInt();

 

double avg = (kor + eng + mth)/3.0;

 

// long a = 5; (사용불가)최종적인 값의 형태는 byte, short, int, char, String 중 하나의 데이터 타입이어야 한다

 

switch((int)avg/10) {

case '\n':

System.out.println("학점 : A\n합격!");

case 4+5:

System.out.println("학점 : B\n합격!");

case 8:

System.out.println("학점 : C\n합격!");

case 7:

System.out.println("학점 : D\n합격!");

case 6:

System.out.println("학점 : E\n합격!");

default :

System.out.println("default");

}

 

sc.close();

 

}

}

 

 


 

 

Exercise 2

 

계산기 만들기
두 개의 정수를 입력받고 다음과 같이 사칙연산을 할 수 있는 switch문을 만들어 출력 하십시오
=============출력=============
## 계산기 ##
1) 더하기
2) 빼기
3) 나누기
4) 곱하기
선택 :

 

import java.util.Scanner;

public class Test02 {

public static void main(String[] args) {

 

Scanner sc = new Scanner(System.in);

 

System.out.println("==============출력==============");

System.out.print("## 계산기 ##\r\n1) 더하기\r\n2) 빼기\r\n3) 나누기\r\n4) 곱하기\r\n선택 : ");

int user = sc.nextInt();

 

System.out.println("두 개의 정수를 입력하세요");

int a = sc.nextInt();

int b = sc.nextInt();

 

sc.close();

 

System.out.println("===============================");

System.out.print("결과값 : ");

switch(user) {

case 1:

System.out.println(a + " + " + b + " = " + (a + b));

break;

case 2:

System.out.println(a + " - " + b + " = " + (a - b));

break;

case 3:

System.out.println(a + " ÷ " + b + " = " + (a / b));

break;

case 4:

System.out.println(a + " × " + b + " = " + (a * b));

}

}

}

 

 

출력화면

 

 


 

 

Exercise 3

여행사 경품 추첨 프로그램
사용자에게 여행가고 싶은 달을 숫자로 입력받아
해당하는 계절에 맞는 사은품을 증정한다는 메세지를 출력

(예상출력값)
여행가고싶은 달 입력 : 5
봄에 여행가시면 황사마스크를 사은품으로 증정합니다!

[계절별 사은품]
봄 - 황사마스크
여름 - 모기퇴치약
가을 - 선글라스
겨울 - 머플러

 

import java.util.Scanner;

public class Test03 {

 

public static void main(String[] args) {

 

Scanner sc = new Scanner(System.in);

 

System.out.println(

"여행가고 싶은 달을 숫자로 입력하시면\n해당하는 계절에 맞는 사은품을 증정합니다");

System.out.println("=================================");

System.out.println("[계절별 사은품]\r\n"

+ "봄 - 황사마스크\r\n"

+ "여름 - 모기퇴치약\r\n"

+ "가을 - 선글라스\r\n"

+ "겨울 - 머플러");

System.out.println("=================================");

System.out.print("여행가고싶은 달 입력 : ");

int month = sc.nextInt();

 

sc.close();

 

String spr = "황사마스크를";

String sum = "모기퇴치약을";

String aut = "선글라스를";

String win = "머플러를";

 

switch (month) {

case 3:

System.out.println("봄에 여행가시면 " + spr + " 사은품으로 증정합니다!");

break;

case 4:

System.out.println("봄에 여행가시면 " + spr + " 사은품으로 증정합니다!");

break;

case 5:

System.out.println("봄에 여행가시면 " + spr + " 사은품으로 증정합니다!");

break;

case 6:

System.out.println("여름에 여행가시면 " + sum + " 사은품으로 증정합니다!");

break;

case 7:

System.out.println("여름에 여행가시면 " + sum + " 사은품으로 증정합니다!");

break;

case 8:

System.out.println("여름에 여행가시면 " + sum + " 사은품으로 증정합니다!");

break;

case 9:

System.out.println("가을에 여행가시면 " + aut + " 사은품으로 증정합니다!");

break;

case 10:

System.out.println("가을에 여행가시면 " + aut + " 사은품으로 증정합니다!");

break;

case 11:

System.out.println("가을에 여행가시면 " + aut + " 사은품으로 증정합니다!");

break;

case 12:

System.out.println("겨울에 여행가시면 " + win + " 사은품으로 증정합니다!");

break;

case 1:

System.out.println("겨울에 여행가시면 " + win + " 사은품으로 증정합니다!");

break;

case 2:

System.out.println("겨울에 여행가시면 " + win + " 사은품으로 증정합니다!");

break;

default:

System.out.println("잘못된 선택입니다");

}

}

}

 

출력화면