조건문

서지우·2023년 7월 4일
0

JAVA

목록 보기
7/28

if문

- if문은 if, if-else, if-else if의 세가지 형태가 있다.
- 조건식의 결과는 반드시 true 또는 false여야 한다.

실습 - ch04 / S01.java

주석으로 설명..

package ch04;

public class S01 {
    public static void main(String[] args) {
        
        int age;

        if(2023 < 2022){
            age = 11;
        } else {
            age = 12;
        }

        System.out.println(age);
    }
}

실습 - ch04 / S02.java

주석으로 설명..

package ch04;

import java.util.Scanner;

public class S02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int nextInt = scanner.nextInt(); //ctrl + alt + v하면 빠져나옴

        if (nextInt < 10) {
            System.out.println("숫자가 10보다 작습니다.");
        } else if (nextInt < 20) {
            System.out.println("숫자가 9보다 크고 20보다 작습니다.");
        } else if(nextInt < 30){
            System.out.println("숫자가 19보다 크고 30보다 작습니다.");
        } else {
            System.out.println("숫자가 29보다 큽니다.");
        }

        scanner.close();
    }
}

실습을 활용한 문제풀기 - ch04 / S02Quiz.java

주석으로 설명..

package ch04;

import java.util.Scanner;

public class S02Quiz {
    public static void main(String[] args) {
        // 점수를 입력받아서
        // 90점 이상이면 A
        // 80점 이상이면 B
        // 70점 이상이면 C
        // 60점 이상이면 D
        // 60점 미만이면 F

        Scanner scanner = new Scanner(System.in);

        int nextInt = scanner.nextInt();
        if(nextInt >= 90) {
            System.out.println("A");
        } else if(nextInt >= 80){
            System.out.println("B");
        } else if(nextInt >= 70){
            System.out.println("C");
        } else if(nextInt >= 60){
            System.out.println("D");
        } else {
            System.out.println("F");
        }

        scanner.close();
    }
}

중첩 if문

- if문 안에 또 다른 if문을 중첩해서 넣을 수 있음
- if문의 중첩횟수에는 거의 제한이 없다.


switch문

- if문의 조건식과 달리, 조건식의 계산결과가 int타입의 정수와 문자열만 가능
- 조건식의 계산결과와 일치하는 case문으로 이동 후 break문을 만날 때까지 문장들을 수행한다.
  (break문이 없으면 switch문의 끝까지 진행한다.)
- 일치하는 case문의 값이 없는 경우 default문으로 이동한다.
- case문의 값으로 변수를 사용할 수 없다.
  (리터럴, 상수, 문자열 상수만 가능)

실습 - ch04 / S03.java

주석으로 설명..

package ch04;

import java.util.Scanner;

public class S03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int nextInt = scanner.nextInt();

        // if (nextInt < 10) {
        //     System.out.println("숫자가 10보다 작습니다.");
        // } else if (nextInt < 20) {
        //     System.out.println("숫자가 9보다 크고 20보다 작습니다.");
        // } else if(nextInt < 30){
        //     System.out.println("숫자가 19보다 크고 30보다 작습니다.");
        // } else {
        //     System.out.println("숫자가 29보다 큽니다.");
        // }

        if (nextInt < 0) {
            System.out.println("잘못 입력하셨습니다.");
            scanner.close();
            return;
        }

        switch(nextInt / 10){
            case 0:
                System.out.println("숫자가 10보다 작습니다.");
                break;
            case 1:
                System.out.println("숫자가 9보다 크고 20보다 작습니다.");
                break;
            case 2:
                System.out.println("숫자가 19보다 크고 30보다 작습니다.");
                break;
            default:
                System.out.println("숫자가 29보다 큽니다.");
        }
    }
}

실습을 활용한 문제풀기 - ch04 / S03Quiz.java

주석으로 설명..

package ch04;

import java.util.Scanner;

public class S03Quiz {
    public static void main(String[] args) {
        // 점수를 입력받아서
        // 90점 이상이면 A
        // 80점 이상이면 B
        // 70점 이상이면 C
        // 60점 이상이면 D
        // 60점 미만이면 F

        Scanner scanner = new Scanner(System.in);

        int nextInt = scanner.nextInt();

        switch (nextInt / 10) {
            case 10:
            case 9:
                System.out.println("A");
                break;
            case 8:
                System.out.println("B");
                break;
            case 7:
                System.out.println("C");
                break;
            case 6:
                System.out.println("D");
                break;
            default:
                System.out.println("F");
        }

        scanner.close();
    }
}

실습을 활용한 문제풀기2 - ch04 / S03Temp.java

주석으로 설명..

package ch04;

public class S03Temp {
    public static void main(String[] args) {
        int num = 90;

        // 2,3으로 해야 범위가 작아져서 switch문의 코드도 작아진다.
        System.out.println(num % 2);
        // 나머지 -1, 0, 1 나오고
        System.out.println(num % 3);
        // 나머지 -2, -1, 0, 1, 2 나오니까
        // 둘이 합친다면 -1, -2, -3, 1, 2, 3이 나온다.
        // case -1, -2, -3 이면 잘못, 그외의 것은 잘

        switch (num % 2 + num % 3){
            case -1:
            case -2:
            case -3:
                System.out.println("잘못입력하셨습니다.");
                return;
            default:
                System.out.println("잘 입력하셨어요.");
        }
    }
}

if문과 switch문의 비교

- if문이 주로 사용되며, 경우의 수가 많은 경우 switch문을 사용할 것을 고려한다.
- 모든 switch문은 if문으로 변경이 가능하지만, if문은 switch문으로 변경할 수 없는 경우가 많다.
- if문 보다 switch문이 더 간결하고 효율적이다.

Math.random()

- Math클래스에 정의된 난수 발생함수
- 0.0과 1.0 사이의 double값을 반환한다.

실습 - ch04 / S04.java

주석으로 설명..

package ch04;

public class S04 {
    public static void main(String[] args) {
        // Math.random()은
        // 0보다 크거나 같고
        // 1보다 작다
        // 45를 곱하면 0~44.99999...나온다
        double num = Math.random() * 45;
        // int로 캐스팅해서 0~44로 만든다
        int intNum = (int) num;
        // +1 해주면 1~45가 된다.
        int result = intNum + 1;

        System.out.println(result);

    }
}
profile
미래가 기대되는 풀스택개발자 공부 이야기~~

0개의 댓글