개발/부트캠프

본캠프 : JAVA 기초 유튜브 강의 수강_chap04_01-11

EJ EJ 2025. 1. 2. 11:27

<Chapter04>

01. If(전반전) (3:51:03)

      If(후반전) (3:58:34)

02. Else (4:07:11)

03. Else If (4:14:43)

04. Switch Case (4:24:21)

05. For 기본 (4:42:39)

06. While (5:01:42)

07. Do While (5:08:10)

08. 이중 반복문(전반전) (5:15:55)

       이중 반복문(후반전) (5:26:17)

09. 구구단 만들기 (5:33:11)

10. Break (5:40:06)

11. Continue (5:47:58)

<퀴즈 #4> (6:00:19)

 

If 조건문(여러 조건 또는 범위에 해당하는 경우)

package chap_04;

public class _01_If {
    public static void main(String[] args) {
        // 조건문 If
        int hour = 13; // 오후 1시

        // if문 내에서 하나의 문장을 실행할 때는 {} 생략 가능
        if (hour < 14)
            System.out.println("아아 +1");

        // if문 내에서 2개 이상의 문장을 실행할 때는 {} 생략 불가
        if (hour < 14) {
            System.out.println("아아 +1");
            System.out.println("샷추가");
        }

        // 오후 2시 이전, 모닝커피를 마시지 않은 경우
        hour = 10;
        boolean coffee = false;
        // if (hour < 14 && coffee == false)
        if (hour < 14 && !coffee) {
            System.out.println("아아 +1");
        }

        // 오후 2시 이후이거나, 모닝커피를 마신 경우
        hour = 15;
        coffee = true;
        // if (hour >= 14 || coffee == true)
        if (hour >= 14 || coffee) {
            System.out.println("아아디카페인 +1");
        }
    }
}
package chap_04;

public class _03_ElseIf {
    public static void main(String[] args) {
        boolean hallabongAde = false;
        boolean mangoJuice = false;
        boolean orangeJuice = false;

        if (hallabongAde) {
            System.out.println("한라봉에이드 1잔 주문");
        } else if (mangoJuice) {
            System.out.println("망고주스 1잔 주문");
        } else if (orangeJuice) {
            System.out.println("오렌지주스 1잔 주문");
        } else {
            System.out.println("아아 1잔 주문");
        }
    }
}

 

Switch Case 조건문(명확한 케이스가 있는 경우)

package chap_04;

public class _04_SwitchCase {
    public static void main(String[] args) {
        // 아래는 누적이 되는 경우이고 각 케이스에서 멈추려면 케이스마다 break 삽입 필요
        int grade = 1; // 등급
        int price = 7000; // 기본 가격
        switch (grade){
            case 1:
                price += 1000; // price = price + 1000
            case 2:
                price += 1000;
            case 3:
                price += 1000;
                break;
        }
        System.out.println(grade + "등급 제품의 가격 : " + price + "원");
        // 1등급 제품의 가격 : 10000원
        // 2등급 제품의 가격 : 9000원
        // 3등급 제품의 가격 : 8000원
    }
}

 

For 반복문

package chap_04;

public class _05_For {
    public static void main(String[] args) {
        // fori 만 적고 엔터 누르면 자동 완성됨
        for (int i = 0; i < 10; i++) {
            System.out.println("환영합니다 " + i);
        }

        // 짝수만 출력
        for (int i = 0; i < 10; i += 2) {
            System.out.print(i);
        }

        System.out.println();

        // 홀수만 출력
        for (int i = 1; i < 10; i += 2) {
            System.out.print(i);
        }

        System.out.println();

        // 숫자 거꾸로
        for (int i = 5; i > 0; i--) {
            System.out.print(i);
        }

        System.out.println();

        // 1~10까지의 수들의 합
        int a = 0;
        for (int i = 1; i < 11; i++) {
            a += i;
            System.out.println("현재까지의 총합은 " + a + "입니다.");
        }
        System.out.println("최종합은 " + a + "입니다.");
    }
}

 

While, DoWhile 반목분

public class _06_While {
    public static void main(String[] args) {
        int distance = 25; // 전체 거리 25m
        int move = 0; // 현재 이동 거리 0m
        int height = 2; // 키 2m
        while (move + height < distance) {
            System.out.println("발차기 중");
            System.out.println("현재 이동 거리 : " + move);
            move += 3;
        }
        System.out.println("도착");
    }
}
public class _07_DoWhile  {
    public static void main(String[] args) {
        int distance = 25; // 전체 거리 25m
        int move = 0; // 현재 이동 거리 0m
        int height = 25; // 키 2m

    do {
        System.out.println("발차기 중");
        System.out.println("현재 이동 거리 : " + move);
        move += 3;
    } while (move + height < distance);
    System.out.println("도착");
}
}

 

이중반복문, 구구단 만들기

public class _09_MultipleTable {
    public static void main(String[] args) {
        // 구구단

        for (int i = 2; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                System.out.println(i + " x " + j + " = " + (i * j));
            }
            System.out.println();
        }
    }
}

 

Break

public class _10_Break {
    public static void main(String[] args) {
        // For 문
        int max = 20; // 판매 가능한 치킨 수량
        for (int i = 1; i <= 50 ; i++) {
            System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
            if (i == max) {
                System.out.println("금일 재료 소진되었습니다.");
                break;
            }
        }
        System.out.println("영업 종료");

        System.out.println("------------");

        // While 문
        int index = 1; // 손님 대기 번호
        while (index <= 50) {
            System.out.println(index + "번 손님, 주문하신 치킨 나왔습니다.");
            if (index == max) {
                System.out.println("금일 재료 소진되었습니다.");
                break;
            }
            index++;
        }
        System.out.println("영업 종료");
    }
}

 

Continue

public class _11_Continue {
    public static void main(String[] args) {
        // 치킨 주문 손님 중에 노쇼 손님이 있다고 가정
        // For 문
        int max = 20; // 최대 치킨 판매 수량
        int sold = 0; // 현재 치킨 판매 수량
        int noShow = 17; // 대기번호 17번 손님이 노쇼함
        for (int i = 1; i <= 50 ; i++) {
            System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");

            // 노쇼 손님 발생
            if (i == noShow) {
                System.out.println(i + "번 손님, 노쇼로 다음 손님에게 기회가 넘어갑니다.");
            continue;
            }

            sold++;
            if (sold == max) {
                System.out.println("재료 소진되었습니다.");
                break;
            }
        }
        System.out.println("영업 종료");
        System.out.println("--------------");

        // While 문
        sold = 0;
        int index = 0; // 대기 손님 번호
        while (index < 50) { // While (true)로 해도 됨
            index++;
            System.out.println(index + "번 손님, 치킨 나왔습니다.");

            if (index == noShow) {
                System.out.println(index + "번 손님, 노쇼로 다음 손님에게 기회가 넘어갑니다.");
                continue;
            }

            sold++; // 판매처리
            if (sold == max) {
                System.out.println("재료 소진되었습니다.");
                break;
            }
        }
        System.out.println("영업 종료");
    }
}

 

<퀴즈4>

문제:

조건문을 활용하여 주차 요금 정산 프로그램을 작성하시오.

 

조건:

-주차요금은 시간당 4,000원(일일 최대 요금은 30,000원)

-경차 또는 장애인 차량은 최종 요금에서 50% 할인

 

예시:

-일반 차량 5시간 주차 시 20,000원

-경차 5시간 주차 시 10,000원

-장애인 차량 10시간 주차 시 15,000원

 

실행결과:

 

👉🏻 정답(소스코드 / 직접 작성)

public class _Quiz_04 {
    public static void main(String[] args) {
        boolean smallcar = false;
        boolean specialcar = true;

        int hour = 10; // 주차 시간
        int fee = hour * 4000; // 주차 요금

        if (fee > 30000) {
            fee = 30000;
        } // 일일 최대 30000원

        if (smallcar || specialcar) {
            fee /= 2;
        } // 50% 할인 적용
        
        System.out.println("주차 요금은 " + fee + "원입니다.");
        }
    }