[Java] 자바 #12 자바 조건문(if문, switch문)

조건문(if, switch)

서론

프로그램 코드의 실행 순서를 제어할 수 있는 구문들...


1. 조건문

 a. if문

 b. switch문(switch case문)


2. 반복문

 a. for문

 b. while문

 c. do-while문

 d. for(Enhanced for, 향상된 포문 -> forEach문)

3. 분기문

 a. break;

 b. continue;

 

if문

-조건을 제시한 후 결과에 따라 실행할 코드를 선택.

-조건은 반드시 boolean값을 가진다.

-A ? B : C와 유사함. (삼항연산자)


[case1]

if( 조건식 ){

실행문 구현코드

}//if block


[case2]

if( 조건식 ){

실행문 구현코드

}else{

실행문 구현코드

}


[case3] : if문안에 if문이 또 올수있다 : 중첩조건.

if( 조건식 ){

 if(조건식){

실행문 구현 코드

 }

실행문 구현코드

}else if{

실행문 구현코드

}else{

실행문 구현코드

}


첫번째 예제

- 문자 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
24
25
public static void m3(BufferedReader reader)throws Exception{
        //문자 1개 입력 -> 영소문자?대문자?
        System.out.print("문자 : ");
        String input = reader.readLine();
        char charInput = input.charAt(0);
        
        if('a'<=charInput && charInput <='z')
            System.out.println("소문자입니다.");
        else if('A'<=charInput && charInput <='Z')
            System.out.println("대문자입니다.");
        else if('0'<=charInput && charInput <='9')
            System.out.println("통과");
        if('가'<=charInput && charInput <='힣')
            System.out.println("한글입니다.");
        
 
        if(('a'<=charInput && charInput <='z'|| 
            ('A'<=charInput && charInput <='Z'|| 
            ('0'<=charInput && charInput <='9'||
            ('가'<=charInput && charInput <='힣') )
                System.out.println("문자입니다.");
        else
            System.out.println("특수문자입니다.");
        System.out.println(charInput);
}
cs



switch문


switch(조건){

case 값:

실행코드;

break;

[case 값:

실행코드;

break;] x n

[default:

실행코드;

break;]

}


- switch 문은 괄호() 안의 조건문에 boolean(참, 거짓) 형 데이터 보다는 숫자데이터의 분기를 수행한다. boolean형 데이터가 오면 컴파일 에러!!


간단예제

int n = 2;

//조건값, data, not just boolean

switch(n){

case 1:

System.out.println("하나");

break;

case 2:

System.out.println("둘");

break;

default:

System.out.println("그외");

break;

}


String 예제

String color = "white";

switch(color){

case "red": //case 값: <- Label

System.out.println("빨강");

break;

case "yellow":

System.out.println("노랑");

break;

case "blue":

System.out.println("파랑");

break;

default:

System.out.println("하양");

break;

}


<컴파일 에러!!!>

- 원래 switch문은 정수값만 사용가능하게 만들었음.

boolean flag = true;

switch(flag){

case true:

System.out.println("참");

break;

case false:

System.out.println("거짓");

break;

}


자동판매기 or 카메라 예제


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
public static void m3(BufferedReader reader)throws Exception{
        //자동판매기        
        System.out.println("================================");
        System.out.println("자판기");
        System.out.println("================================");
        System.out.println("1. 콜라 | 2. 사이다 | 3. 비타500");
        System.out.println("================================");
        System.out.print("음료 선택(번호) : ");
 
        String num = reader.readLine();
        switch(num){
            case "1":
                //System.out.println("700원");
                //break;
            case "2":
                System.out.println("600원");
                break;
            case "3":
                System.out.println("500원");
                break;
            default:
                System.out.println("\"정보 없음\"");
                break;
        }
 
        //쇼핑몰 + 옵션 선택
        //1. 카메라 + 메모리 + 삼각대
        //2. 카메라 + 메모리
        //3. 카메라
        
        int option = 1;
        switch(option){
            case 1:
                System.out.println("카메라");
                System.out.println("메모리");
                System.out.println("삼각대");
                break;
            case 2:
                System.out.println("카메라");
                System.out.println("메모리");
                break;
            case 3:
                System.out.println("카메라");
                break;
        }
}
cs



댓글

Designed by JB FACTORY