Backend/Java

9. 흐름 제어 선택문

Study 2021. 7. 17. 22:59

안녕하세요 

이번 포트팅에서는 흐름제어문 중 선택문을 설명 해보겠습니다.

 

1. if ~ else

if문은 Boolean식의 값을 기준으로 실행할 문을 선택합니다.

다음 예제에서는 사용자가 입력한 조건에 따라 분기를 따라가며 각 분기마다 정해진 메시지를 사용자에게 출력하고 있습니다.

 

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;
 
public class IfElse {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("새누리당 1");
        System.out.println("더불어민주당 2");
        System.out.println("정의당 3");
        System.out.println("녹색당 4");
        System.out.println("국민의당 5");
        System.out.println("지지하는 정당을 선택하세요. : ");
        
        String input = scanner.nextLine();
        
        int number = Integer.parseInt(input);
        
        if (number == 1)
            System.out.println("새누리당을 지지하시는군요.");
        else if (number == 2)
            System.out.println("더불어민주당을 지지하시는군요.");
        else if (number == 3)
            System.out.println("정의당을 지지하시는군요.");
        else if (number == 4)
            System.out.println("녹색당을 지지하시는군요.");
        else if (number == 5)
            System.out.println("국민의당을 지지하시는군요.");
        else {
            System.out.println("요즘 그놈이 그놈 같아도 덜 나쁜놈을 뽑아야 합니다.");
            System.out.println("제일 나쁜놈의 지배를 받는것보다 좋아질겁니다.");
        }
    }
}
cs

 

 

2. switch~case~default

switch문은 내용을 case문 중에 하나로 전달하여 다중 선택 및 열거형을 처리하는 제어문입니다.

if~else만 사용해도 모든 선택문을 처리할 수 있습니다.

효율 및 가독성이라는 측면에서 switch는 좋은 성능을 냅니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
public class SwitchCaseDefault {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("요일을 입력하세요.(일,월,화,수,목,금,토) : ");
        String day = scanner.nextLine();
 
        switch (day) {
            case "일":System.out.println("Sunday");break;
            case "월":System.out.println("Monday");break;
            case "화":System.out.println("Tuesday");break;
            case "수":System.out.println("Wednesday");break;
            case "목":System.out.println("Thursday");break;
            case "금":System.out.println("Friday");break;
            case "토":System.out.println("Saturday");break;
            default:System.out.printf("%s는(은) 요일이 아닙니다.", day);break;
        }
    }
}
cs

 개인적으로 if else문에 비해 조금더 보기 편하다고 생각합니다.

 

3. try ~ catch문

try catch문은 엄밀히 말하면 이프문과도 약간 비슷하다고 볼 수 있는데요 

finally 라는 기능외에는 큰 차이점이 없긴 합니다. 다만 try문 안에서 무엇인가 동작하는 동안 생기는 모든것을 감시하고 그중에 무엇인가 조건이 감지되면 특정 행위를 합니다.

 

런타임 예외처리 관련해서 포스팅하면서 트라이 캐치문은 조금더 자세히 다뤄보겠습니다.