육식하는야채의 개발일지
article thumbnail

if문

 

if문은 조건식의 결과에 따라 블록 실행 여부가 결정된다.

조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 타입 변수가 올 수 있다.

조건식이 true이면 블록을 실행하고 false이면 블록을 실행하지 않는다.

 

package chapter4_1;

public class IfExample {
    public static void main(String[] args) {
        int score = 93;

        if (score >= 90) { //true
            System.out.println("점수가 90보다 큽니다.");
            System.out.println("등급은 A입니다.");
        }

        if (score <= 90) { // false 이 구문은 실행되지 않는다. 
            System.out.println("점수가 90보다 작습니다.");
            System.out.println("등급은 B입니다.");
        }
    }
}
/* 실행결과
점수가 90보다 큽니다.
등급은 A입니다.
*/

 

if-else문

 

if문의 조건식이 true이면 if문의 블록이 실행되고 조건식이 false이면 else 블록이 실행된다.

조건식의 결과에 따라 이 2개의 블록 중 어느 한 블록에만 내용을 실행하고 전체 if문을 벗어나게 된다.

 

package chapter4_1;

public class IfElesExample {
    public static void main(String[] args) {
        int score = 85;

        if (score >= 90) { // false else문이 실행된다.
            System.out.println("점수가 90보다 큽니다.");
            System.out.println("등급은 A입니다.");
        }else {
            System.out.println("점수가 90보다 작습니다.");
            System.out.println("등급은 B입니다.");
        }
    }
}
/* 실행결과
점수가 90보다 작습니다.
등급은 B입니다.
*/

 

if-else if-else문

조건문이 여러 개인 if문도 있다. 

package chapter4_1;

public class IfElseIfElseExample {
    public static void main(String[] args) {
        int score = 75;
        if (score >= 90) { // false일 경우 2번쨰로 넘어간다.
            System.out.println("점수가 90~100입니다.");
            System.out.println("등급은 A입니다.");
        } else if (score >= 80) { // false일 경우 3번째로 넘어간다.
            System.out.println("점수가 80~89입니다.");
            System.out.println("등급은 B입니다.");
        } else if (score >= 70) { // false일 경우 4번째로 넘어간다.
            System.out.println("점수가 79~70입니다.");
            System.out.println("등급은 C입니다.");
        } else {  // 위의 모든 조건식이 false일 경우 else가 실행된다.
            System.out.println("점수가 70 미만입니다.");
            System.out.println("등급은 D입니다.");
        }
    }
}
/* 실행결과
점수가 79~70입니다.
등급은 C입니다.
*/

 

주사위 번호 뽑기

 

if-else if-else문을 사용해서 주사위의 번호를 뽑는 프로그램을 만들 수도 있다. 

주사위의 번호를 뽑기 위해서는 아래의 메소드를 사용할 수 있다.

Math.random()

이 메소드는 0.0 보다 크거낙 같고 1.0보다 작은 double 타입의 난수를 하나 리턴한다.

0.0 <= Math.radom() < 1.0

따라서 이 메소드에 10을 곱하면 

0.0 * 10 <= Math.random() < 1.0 *10

결과적으로 0보다 크거나 같고 10보다 아래인 정수범위가 설정된다.

(int)0.0 <= (int)(Math.ramdom()) * 10 < (int)10.0

이 상태에서 각 변에 1을 더하면 1~10까지의 정수 중에 하나의 정수를 얻을 수 있게 된다.

 

만약 1에서 6까지의 정수 중에 하나를 뽑고 싶다면

int num = (int)(Math.random() * 6) + 1;

을 해주면 된다.

package chapter4_1;

public class IfDiceExample {
    public static void main(String[] args) {
        int num = (int) (Math.random() * 6) + 1; // 1 ~ 6까지의 난수

        if (num == 1) {
            System.out.println("1번이 나왔습니다.");
        } else if (num == 2) {
            System.out.println("2번이 나왔습니다.");
        } else if (num == 3) {
            System.out.println("3번이 나왔습니다.");
        } else if (num == 4) {
            System.out.println("4번이 나왔습니다.");
        } else if (num == 5) {
            System.out.println("5번이 나왔습니다.");
        } else {
            System.out.println("6번이 나왔습니다.");
        }
    }
}

 

switch문

 

switch문은 if문과 마찬가지로 조건 제어문이다. 하지만 switch문은 if문처럼 조건식이 true일 경우 내부블럭을 실행하는 것이 아니라

변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.

 

조건식의 결과가 많은 경우 if-else를 쓰는 것보다 switch문을 쓰면 더욱 간결한 코드를 만들 수 있다.

 

package chapter4_1;

public class SwitchExample {
    public static void main(String[] args) {
        int num = (int) (Math.random() * 6) + 1; // 주사위 번호 뽑기

        switch (num) {
            case 1:
                System.out.println("1번이 나왔습니다.");
                break;
            case 2:
                System.out.println("2번이 나왔습니다.");
                break;
            case 3:
                System.out.println("3번이 나왔습니다.");
                break;
            case 4:
                System.out.println("4번이 나왔습니다.");
                break;
            case 5:
                System.out.println("5번이 나왔습니다.");
                break;
            default:
                System.out.println("6번이 나왔습니다.");
                break;
        }
    }
}

 

Char 타입 변수로 대소문자 상관없이 동일하게 처리하도록 만든 switch문이다.

package chapter4_1;

public class SwitchCharExample {
    public static void main(String[] args) {
        char grade = 'B';

        switch (grade) {
            case 'A':
            case 'a':
                System.out.println("우수 회원입니다.");
                break;
            case 'B':
            case 'b':
                System.out.println("일반 회원입니다.");
                break;
            default:
                System.out.println("손님입니다.");
        }
    }
}

String 타입의 switch문

package chapter4_1;

public class SwitchStringExample {
    public static void main(String[] args) {
        String position = "과장";

        switch (position) {
            case "부장":
                System.out.println("700만원");
                break;
            case "과장":
                System.out.println("500만원");
                break;
            default:
                System.out.println("300만원");
                break;
        }
    }
}

 

 

확인문제 

 

1. 조건문의 종류를 쓰시오.

조건문 : if문, switch문

 

2. 조건문을 설명한 것 중 맞는 것은 무엇인가.

- if문은 조건식의 결과에 따라 실행 흐름을 달리할 수 있다. O

- if문은 조건식이 true이면 블록을 실행하고 false이면 블록을 실행하지 않는다. O

- if문의 블록 내부에는 또 다른 if문을 사용할 수 있다. O

- switch문에서 사용할 수 있는 변수의 타입은 int만 가능하다. O

 

3. 다음 코드를 실행했을 때 출력되는 내용을 적으시오.

package chapter4_1;

public class Quiz3 {
    public static void main(String[] args) {
        int score = 85;
        System.out.print("등급은 ");
        if (score < 70) {
            System.out.print("D");
        } else if (score < 80) {
            System.out.print("C");
        } else if (score < 90) {
            System.out.print("B");
        } else{
            System.out.print("A");
        }
        System.out.println("입니다.");
    }
}
등급은 B입니다.

 

4. 다음 코드를 실행했을 때 출력되는 내용을 적어보시오

package chapter4_1;

public class Quiz4 {
    public static void main(String[] args) {
        System.out.println("어떤 혜택을 원하세요?");
        char grade = 'A';
        switch (grade) {
            case 'A' -> {
                System.out.println("VVIP혜택을 받으실 수 있습니다.");
            }
            case 'B' -> {
                System.out.println("VIP혜택을 받으실 수 있습니다.");
            }
            case 'C' -> {
                System.out.println("우수 회원 혜택을 받으실 수 있습니다.");
            }
            case 'D' -> {
                System.out.println("일반 회원 혜택을 받으실 수 있습니다.");
            }default -> System.out.println("혜택이 없습니다.");
        }
        System.out.println("감사합니다.");
    }
}
어떤 혜택을 원하세요?
VVIP혜택을 받으실 수 있습니다.
감사합니다.

 

 

'Java > 혼공자' 카테고리의 다른 글

JAVA) 반복문 for문, while문 do-while문  (1) 2023.04.23
JAVA) 연산자의 종류  (0) 2023.04.19
JAVA) 연산자와 연산식  (0) 2023.04.18
profile

육식하는야채의 개발일지

@육식하는야채

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!