1. 조건문 - if, switch

조건문은 조건식과 문장을 포함하는 블럭으로 구성되어 있으며, 조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행 흐름을 변경할 있다.

 

처리해야 경우의 수가 많으면 switch문이 효율적이나 사용에 제한이 많다.

 

  1. If 예제

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package java_bible_ch4;
 
import java.util.Scanner;
 
public class FlowEx {
 
    public static void main(String[] args) {
        int input = 0;
        
        System.out.print("숫자 하나를 입력하세요 : ");
        
        Scanner scanner = new Scanner(System.in);
        String temp        = scanner.nextLine();
        input            = Integer.parseInt(temp);
    
        if (input == 0) {
            System.out.println("입력하신 숫자는 0입니다.");
        } else {
            System.out.println("입력하신 숫자는 0이 아닙니다.");
            System.out.printf("입력하신 숫자는 %d입니다.", input);
        }
    }
}
cs


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
package java_bible_ch4;
 
import java.util.Scanner;
 
public class FlowEx01 {
 
    public static void main(String[] args) {
        int score  = 0;
        char grade = ' ';
        
        System.out.print("점수를 입력하세요 : ");
        Scanner scanner = new Scanner(System.in);
        String temp     = scanner.nextLine();
        score             = Integer.parseInt(temp);
        
        if (score >= 90) {
            grade = 'A';
        } else if (score >= 80) {
            grade = 'B';
        } else if (score >= 70) {
            grade = 'C';
        } else {
            grade = 'D';
        }
        
        System.out.println("당신의 학점은 " + grade + " 입니다.");
    }
}
 
cs



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
34
35
36
37
38
39
40
package java_bible_ch4;
 
import java.util.Scanner;
 
public class FlowEx02 {
 
    public static void main(String[] args) {
        int score  = 0;
        char grade = ' ';
        char opt   = '0';
        System.out.print("점수를 입력하세요 : ");
        
        Scanner scanner = new Scanner(System.in);
        String temp     = scanner.nextLine();
        score            = Integer.parseInt(temp);
        
        System.out.printf("당신의 점수는 %d 입니다.%n", score);    
        
        if (score >= 90) {
            grade = 'A';
            if (score >= 98) {
                opt = '+';
            } else if (score < 94) {
                opt = '-';
            }
        } else if (score >= 80) {
            grade = 'B';
            if (score >= 88) {
                opt = '+';
            } else if (score < 84) {
                opt = '-';
            }
        } else {
            grade = 'C';
        } 
        
        System.out.printf("당신의 학점은 %c%c 입니다.%n", grade, opt);        
    }
}
 
cs


  1. Switch 예제

Switch문은 하나의 조건식으로 많은 경우를 처리할 있고 표현도 간결하다. 다만 switch문은 제약조건이 있어 경우의 수가 많아도 어쩔 없이 if 문으로 작성해야 하는 경우가 있다.

 

제약조건

- switch문의 조건식 결과는 정수 또는 문자열(jdk 1.7 부터 지원)이어야 한다.

- case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.



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
package java_bible_ch4;
 
import java.util.Scanner;
 
public class FlowEx03 {
 
    public static void main(String[] args) {
        int month = 0;
        
        System.out.print("현재 월을 입력하세요(숫자) : ");
        
        Scanner scanner = new Scanner(System.in);
        String temp        = scanner.nextLine();
        month             = Integer.parseInt(temp);
        
        switch(month) {
            case 3case 4case 5:
                System.out.println("봄 입니다."); 
                break;
            case 6case 7case 8:
                System.out.println("여름 입니다."); 
                break;
            case 9case 10case 11:
                System.out.println("가을 입니다."); 
                break;
            case 12case 1case 2:
                System.out.println("겨울 입니다."); 
        }
    }
}
cs


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
import java.util.Scanner;
 
public class FlowEx04 {
 
    public static void main(String[] args) {
        int user, com;
        
        System.out.print("가위(1) 바위(2) 보(3) 중 하나를 입력하세요 : ");
        
        Scanner scanner = new Scanner(System.in);
        String temp     = scanner.nextLine();
        user            = Integer.parseInt(temp);
        
        com = (int) (Math.random() * 3+ 1// 1,2,3 중 하나가 com에 저장
        
        System.out.println("user : " + user);
        System.out.println("com : "  + com);
        
        switch (user-com) {
            case 2case -1:
                System.out.println("user가 졌습니다.");
                break;
            case 1case -2:
                System.out.println("user가 이겻습니다.");
                break;
            case 0
                System.out.println("비겻습니다.");
        }        
    }
 
}
 
cs


자바의 정석 3판을 정리하며 공부하고 있습니다. 

+ Recent posts