제어문
: 코드의 흐름을 제어하는 문장(문법)
코드의 일정 부분을 선택하여 실행하거나
코드의 일정 부분을 반복하여 실행하는 제어문
제어문의 종류
조건문
: 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("잘못된 선택입니다");
}
}
}
출력화면
'Backend > JAVA' 카테고리의 다른 글
JAVA 코딩 객체지향프로그래밍 OOP, 클래스 Class, 함수, 메소드 (0) | 2023.02.16 |
---|---|
JAVA 코딩 제어문 - 반복문 : while, for, do ~ while문 (0) | 2023.02.06 |
JAVA 코딩 제어문 - 조건문 : 단순if문, if~else문, if~else if~else문 (0) | 2023.02.03 |
JAVA 코딩 System.in 표준 입력 스트림, Scanner 스캐너 (0) | 2023.02.01 |
JAVA Stream, 제어문자, 서식문자 (0) | 2023.01.31 |