본문 바로가기
Java 공부 기록

조건문(switch문)

by moonchance 2023. 6. 6.

 

 

중첩 switch문

 

if문과 switch문의 비교

[출처]자바의 정석

 

 

실습을 해보자.

	public static void main(String[] args) {
		// switch(변수/식) {
		// case 값1 : 실행문1; break;
		// case 값2 : 실행문2; break; ...
		// default : 나머지 실행문; break; }
		// break; switch문을 빠져나가는 구문

		int num = 2;
		switch (num) {
		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;
		}
		System.out.println("---------------");
		// 1~3 까지의 수를 랜덤으로 추출하여 값이 1인지, 2인지, 3인지 판단하여 출력
		int random = (int) (Math.random() * 3) + 1;
		switch (random) {
		case 1: {
			System.out.println(random + "이 나왔습니다.");
		}
			break;
		case 2: {
			System.out.println(random + "이 나왔습니다.");
		}
			break;
		case 3: {
			System.out.println(random + "이 나왔습니다.");
		}
			break;
		default:
			System.out.println("1~3의 범위를 벗어났습니다.");
			break;
		}
		System.out.println("---------------");
		// 1 ~ 3 등급의 가격 출력
		int index = 1; //등급
		int val = 0;
		switch (index) {
		case 1: {
			val += 1000;
		}
		case 2: {
			val += 1000;
		}
		case 3: {
			val += 1000;
		}
		System.out.println(index + "등급의 가격은 " + val + "원 입니다.");
		break;
		default:
			System.out.println("1 ~ 3등급 까지만 취급합니다.");
			break;
		}
		
	}

 

	public static void main(String[] args) {
		// 숙제 (클럽에 제출)
		// 정수 2개와 연산자 하나를 입력받아 두 정수의 연산을 출력
		// 연산자는 + - * / % 중 하나를 입력받기
		// ex) 3 2 + => 3 + 2 = 5
		// ex2) 3 2 - => 3 - 1 = 2
		// ex3) 3 2 * => 3 * 2 = 6
		Scanner scan = new Scanner(System.in);
		System.out.println("첫번째 숫자를 입력 하세요. (정수)");
		int num = scan.nextInt();
		System.out.println("두번째 숫자를 입력 하세요. (정수)");
		int num1 = scan.nextInt();
		System.out.println("연산자를 입력 하세요. (+, -, *, /, %)");
		char op = scan.next().charAt(0);
		
		// switch() : 숫자는 그냥 입력 int num = 3
		// char(한글자) ' ' 값을 입력받음
		// String(문자열) " " 값을 입력받음
		// + : 더하기, + : 연결연산자 (피연산자가 문자일 경우)
		// 3 + 5 = 8 => 의미 없는 문자를 삽입하여 연산이 되지 않게함. ex) ""
		int result=0;
		switch(op) {
		case '+': 
			result = num + num1;
			break;
		case '-':
			result = num - num1;
			break;
		case '*':
			result = num * num1;
			break;
		case '/':
			result = num / num1;
			break;
		case '%':
			result = num % num1;
			break;
			default:
				System.out.println("잘못된 연산자 입니다.~!!");
				break;
		}
		//op char 형태 : 정수 자료형
		// + : 더하기, + : 연결연산자 (피연산자가 문자일경우)
		// 3 + 5 = 8 => 의미 없는 문자를 삽입하여 연산이되지 않게함.
		System.out.println(num + " " + op + " " + num1 + " = " + result);

		scan.close();
	}
	public static void main(String[] args) {
		// 랜덤으로 1부터 7까지의 숫자를 발생시켜
		// 1 = 일요일, 2 = 월요일, 3 = 수욜일... 7 = 토요일
		
		int random = (int)(Math.random()*7)+1;
		switch (random) {
		case 1:
			System.out.println("일요일 입니다.");
			break;
		case 2:
			System.out.println("월요일 입니다.");
			break;
		case 3:
			System.out.println("화요일 입니다.");
			break;
		case 4:
			System.out.println("수요일 입니다.");
			break;
		case 5:
			System.out.println("목요일 입니다.");
			break;
		case 6:
			System.out.println("금요일 입니다.");
			break;
		case 7:
			System.out.println("토요일 입니다.");
			break;
		default: // 생략가능
			break;
		}
	}

'Java 공부 기록' 카테고리의 다른 글

break문, continue문  (0) 2023.06.06
반복문(for문)  (0) 2023.06.06
조건문(if문)  (0) 2023.06.06
TypeCasting(형변환)  (0) 2023.06.06
Operator(연산자)  (0) 2023.06.06