hyeonga_code

Java_25_제어문_조건문 중첩 if문 본문

Java

Java_25_제어문_조건문 중첩 if문

hyeonga 2023. 9. 21. 06:59
반응형


 - 제어문
    - 조건문
        - 조건식과 실행될 하나의 문장이나 Scope로 구성되어 있습니다.
        - 반복해서 같은 코드를 수행할 경우 사용합니다.
        - 조건식과 수행할 Scope, 문장으로 구성되어 있습니다.
        - 조건식의 결과는 true/false 여야 합니다.
        - boolean 을 조건식에 바로 적용할 수 있습니다.

        4) 중첩 if 문
            if ( 조건식 1 ){
                조건식 1 이 참일 경우 실행될 코드
                if ( 조건식 2 ){
                    조건식 1 이 참이면서 조건식 2 가 참인 경우 실행될 코드
                } else {
                    조건식 1 이 참이면서 조건식 2 가 거짓인 경우 실행될 코드
                } 
            } else {
                조건식 1 이 거짓인 경우 실행될 코드
            }
            
        - switch - case
            switch( 조건식 ){
                // 조건식의 계산결과와 일치하는 case 문으로 이동합니다.
                // byte, char, short, int, String

                case '값 1':
                    조건식의 결과가 '값 1'일 경우 실행할 코드
                    break;  // switch 문을 종료합니다.
                case '값 2':
                    조건식의 결과가 '값 2'일 경우 실행할 코드
                    break;
                ...
                default:    // 생략이 가능합니다.
                    조건식의 결과와 일치하는 case 문이 없는 경우 실행할 코드
            }

            - 비교 조건문으로 많은 데이터를 확인할 경우, 비교해야 하는 조건 식이 많으므로 시간이 더 오래 걸립니다.
            - 조건을 확인한 후, 바로 일치하는 조건으로 넘어가기 위함입니다. > 시간을 단축시킬 수 있습니다.
            - 조건들 끼리 연결되어 있어 결국 가장 마지막 코드까지 넘어가게 됩니다.
                - 조건 코드마다 break 코드를 입력하여 switch 문을 종료하게 작업해야 합니다.
            - 조건 이름이 있어야 찾아 갈 수 있으므로, case 는 상수로 설정해야 한다.
            - 조건을 확인한 후, 바로 일치하는 조건으로 넘어가기 위해 사용합니다. 
                - 시간을 단축시킬 수 있습니다.
            - 경우의 수가 많은 경우 사용합니다.
            - 모든 switch문은 if문으로 변경이 가능합니다.
            - 조건식의 계산 결과가 int 범위 이하의 정수만 가능합니다.
            - case 문의 '값'
                - 변수를 사용할 수 없습니다.
                - 리터럴, 상수, 문자로 작성할 수 있습니다.
            - 중첩으로도 사용이 가능합니다.
'ControlEx.java'
=====

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package basic;
//모든 클래스는 패키지 안에 생성합니다.
 
import java.util.*;
 
public class ControlEx {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
        
        // 전화번호 끝번호 1: SK, 6: KTF, 9: LG
        
        String result;    // 출력할 값
        
        Scanner scanner = new Scanner(System.in);
        System.out.println("Input phone number : ");
        String phone = scanner.nextLine();
        char ph = phone.charAt(2);
            /*
                 - 아스키 코드로 숫차 출력하기
                     - 아스키 코드에서 48을 빼면 원하는 값이 출력됩니다.
                int ph2 = (int)phone.charAt(2)-48;    
                System.out.println(ph - 48);
            */
        
            /*
                 - Wrapper class로 숫자 출력하기
                int num = ph - 48;
                num = Character.getNumericValue(ph);
                System.out.println(num);
            */
 
        // switch 
        switch(ph) {
        case '1':
            result = "SK";
            break;
        case '6':
            result = "KTF";
            break;
        case '9':
            result = "LG";
            break;
        default:
            result = "Error";
        }
        System.out.println("switch) Phone : " + result);
        
        scanner.close();
            /*
                Input phone number : 119
                switch) Phone : LG
            */
    }
}
cs


> Q.두 개의 수와 한 개의 산술 연산자를 입력받아 그 연산자대로 실행 시켜주는 프로그램

'ControlEx2.java'
=====

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package basic;
//모든 클래스는 패키지 안에 생성합니다.
 
import java.util.*;
import java.io.*;
 
public class ControlEx2 {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
 
       Scanner in = new Scanner(System.in);
 
        System.out.println("Input number 1: ");
        int num1 = in.nextInt();
        System.out.println("Input numver 2: ");
        int num2 = in.nextInt();
        System.out.println("Input operator : ");
        char op = (char)System.in.read();
 
        /* string으로 입력 받아 비교할 방법이 없음
        =====
        import java.util.*;
 
        public class Ex_0312 {
            public static void main(String[] args) {
                Scanner in = new Scanner(System.in);
 
                System.out.println("Input operator : ");
                String op = in.netx();
                if (op == '+') {
                    System.out.println("+++");
                }
                else {
                    System.out.println("Worng!");
                }
            }
        }
        >> + 입력 시, 'Wrong!' 출력됨
        */
 
        if (op == '+') {
            System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
        }
        else if (op == '-') {
            System.out.println(num1 + " - " + num2 + " = " + (num1 - num2));
        }
        else if (op == '*') {
            System.out.printf("%d %c %d = %d \n", num1, op, num2, num1 * num2);
        }
        else if (op == '/') {
            System.out.printf("%d %c %d = %d \n", num1, op, num2, num1 / num2);
        }
        else if (op == '%') {
            System.out.printf("%d %c %d = %d \n", num1, op, num2, num1 % num2);
        }
        else {
            System.out.println("Worng!");
        }
    }
}
cs


>> switch 문으로 작성하기 

'ControlEx2.java'
=====

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
41
42
43
package basic;
//모든 클래스는 패키지 안에 생성합니다.
 
import java.util.*;
import java.io.*;
 
public class ControlEx2 {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
 
        Scanner in = new Scanner(System.in);
 
        System.out.println("Input number 1: ");
        int num1 = in.nextInt();
        System.out.println("Input numver 2: ");
        int num2 = in.nextInt();
        System.out.println("Input operator : ");
        char op = (char)System.in.read();
 
        switch (op) {
            case '+':
                System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
                break;
            case '-':
                System.out.println(num1 + " - " + num2 + " = " + (num1 - num2));
                break;
            case '*':
                System.out.printf("%d %c %d = %d \n", num1, op, num2, num1 * num2);
                break;
            case '/':
                System.out.printf("%d %c %d = %d \n", num1, op, num2, num1 / num2);
                break;
            case '%':
                System.out.printf("%d %c %d = %d \n", num1, op, num2, num1 % num2);
                break;
            default:
                // 위에 존재하는 case 중 일치하는 값이 없을 경우
                System.out.println("Worng!");
        }
    }
}
cs




 - 번호로 switch문 작성하기

'ControlEx2.java'
=====

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
package basic;
//모든 클래스는 패키지 안에 생성합니다.
 
import java.util.*;
import java.io.*;
 
public class ControlEx2 {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
 
        Scanner in = new Scanner(System.in);
 
        System.out.println("1.fries 2.sandwitch 3.rice \n Choose : ");
        int select = in.nextInt();
 
        switch (select) {
        case 1:
            System.out.println("Choose fries");
            break;
        case 2:
            System.out.println("Choose sandwitch");
            break;
        case 3:
            System.out.println("Choose rice");
            break;
        default:
            System.out.println("Choose again");
        }
    }
}
cs




 - String 값 입력 받아 적용하기

'ControlEx2.java'
=====

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
package basic;
//모든 클래스는 패키지 안에 생성합니다.
 
import java.util.*;
import java.io.*;
 
public class ControlEx2 {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
 
        Scanner in = new Scanner(System.in);
 
        System.out.println("Input Food: ");
        String name = in.next();
 
        switch (name) {
        case "fries":
            System.out.println("Choose fries");
            break;
        case "sandwitch":
            System.out.println("Choose sandwitch");
            break;
        case "rice":
            System.out.println("Choose rice");
            break;
        default:
            System.out.println("Choose again");
        }
    }
}
cs
반응형