[Java] switch 문/최댓값 알고리즘

소이뎁·2023년 9월 19일
1

Java

목록 보기
6/26
post-thumbnail

📍 switch 문

  • if 문의 조건이 "같다(==)"일 경우 switch 문으로 대체 가능
  • 콤마(A2)와 화살표(A3)는 Java 14버전 이상부터 사용 가능
  • 폴스루(fall through): switch 문에서 하나의 case가 실행된 후 다음 case로 통과하는 현상

Q. 월(month)을 입력받아서 어떤 계절인지 출력하세요.

계절
3, 4, 5
6, 7, 8여름
9, 10, 11가을
12, 1, 2겨울

A1. 기본 (폴스루O)
폴스루가 나타난다. 그러므로 폴스루를 원하지 않는 곳에 break 문을 작성해야 한다.

package lesson02;

import java.util.Scanner;

public class Ex04 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("월을 입력하세요 : ");
		int month = scan.nextInt();
		
		switch (month) {
		case 3:
		case 4:
		case 5:
			System.out.println("봄");
			break;
		case 6:
		case 7:
		case 8:
			System.out.println("여름");
			break;
		case 9:
		case 10:
		case 11:
			System.out.println("가을");
			break;
		case 12:
		case 1:
		case 2:
			System.out.println("겨울");
            break;
        default:
        	System.out.println("월을 잘못 입력하셨습니다.");
		}
		
		scan.close();
	}

}

A2. 콤마 (폴스루O)
여러 case 값을 ,로 구분하여 하나의 case 문에 묶어 사용할 수 있다. A1과 마찬가지로 폴스루를 원하지 곳에 break 문을 사용해야 한다.

package lesson02;

import java.util.Scanner;

public class Ex04 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("월을 입력하세요 : ");
		int month = scan.nextInt();
		
		switch (month) {
		case 3, 4, 5:
			System.out.println("봄");
			break;
		case 6, 7, 8:
			System.out.println("여름");
			break;
		case 9, 10, 11:
			System.out.println("가을");
			break;
		case 12, 1, 2:
			System.out.println("겨울");
			break;
		default:
			System.out.println("월을 잘못 입력하셨습니다.");
		}
		
		scan.close();
	}

}

A3. 화살표 (폴스루X)
각 case를 ->로 연결하여 표현할 수 있다. 폴스루가 나타나지 않으므로 break 문을 사용하지 않아도 된다.

package lesson02;

import java.util.Scanner;

public class Ex04 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("월을 입력하세요 : ");
		int month = scan.nextInt();
		
		switch (month) {
		case 3, 4, 5 -> System.out.println("봄");
		case 6, 7, 8 -> System.out.println("여름");
		case 9, 10, 11 -> System.out.println("가을");
		case 12, 1, 2 -> System.out.println("겨울");
		default -> System.out.println("월을 잘못 입력하셨습니다.");
		}
		
		scan.close();
	}

}

📍 최댓값 알고리즘

초기 최댓값(max)을 첫 번째 요소(a)로 설정한 후 더 큰 값이 나타날 때마다 최댓값을 업데이트하는 방식

package lesson02;

import java.util.Scanner;

public class Quiz05 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("세 개의 수를 입력하세요 : ");
		int a = scan.nextInt();
		int b= scan.nextInt();
		int c = scan.nextInt();
		int max = a;
		
		if (max < b) {
			max = b;
		}
		if (max < c) {
			max = c;
		}
		
		System.out.println(max);
		
		scan.close();
	}
}

0개의 댓글