Java 공부(else if, else)

hoin_lee·2022년 6월 16일
0

Java

목록 보기
11/18
post-thumbnail
while (true) {
            //----------------메인 메뉴 부분 -------------------------------
            System.out.println("┌──────────────────────────────────────┐");
            System.out.println("│              메인메뉴                 │");
            System.out.println("└──────────────────────────────────────┘");

            System.out.println("\t1. 성적 입력");
            System.out.println("\t2. 성적 출력");
            System.out.println("\t3. 종료");
            System.out.print("\t선택 >");
            menu = scan.nextInt(); //메뉴 값을 받기

            if (menu == 1) { // 받은 메뉴 값이 1이라면 아래 코드 실행
                //-----------------성적 입력 부분------------------------

                System.out.println("┌──────────────────────────────────────┐");
                System.out.println("│              성적입력                 │");
                System.out.println("└──────────────────────────────────────┘");

                do {
                    System.out.print("국어 1: ");
                    kor1 = scan.nextInt();

                    if (kor1 < 0 || 100 < kor1)
                        System.out.println("성적범위(0~100)를 벗어났습니다.");

                } while (kor1 < 0 || 100 < kor1);

                do {
                    System.out.print("국어 2: ");
                    kor2 = scan.nextInt();

                    if (kor2 < 0 || 100 < kor2)
                        System.out.println("성적범위(0~100)를 벗어났습니다.");

                } while (kor2 < 0 || 100 < kor2);

                do {
                    System.out.print("국어 3: ");
                    kor3 = scan.nextInt();

                    if (kor3 < 0 || 100 < kor3)
                        System.out.println("성적범위(0~100)를 벗어났습니다.");

                } while (kor3 < 0 || 100 < kor3);
            }
            else if (menu == 2) { //받은 메뉴 값이 2라면 아래 코드 실행

                //-----------------성적 출력 부분------------------------

                total = kor1 + kor2 + kor3;
                avg = total / 3.0f;

                System.out.println("┌──────────────────────────────────────┐");
                System.out.println("│              성적출력                 │");
                System.out.println("└──────────────────────────────────────┘");

               

                //for(int n=1; n<=3; i++)
                for (int i = 0; i < 3; i++)
                    System.out.printf("\t국어%d : %3d\n", i + 1, kor1);

                System.out.printf("\t총점 : %3d\n", total);
                System.out.printf("\t평균 : %6.2f\n", avg);
                System.out.println("──────────────────────────────────────");
            }
            else if (menu == 3) { // 받은 메뉴 값이 3이라면 아래 코드 실행
                break; // 현재 진행되는 반복문을 벗어나겠다.
            }else
                System.out.println("입력오류 1~3까지만 입력할 수 있습니다.");
        }
        System.out.println("good bye!");
    }

유념해야할 것
동작이 잘 이루어진다 하여서 잘 만든 것은 아니다. 코드의 흐름을 잘 파악하자

(x)
else를 쓰지않고 if만 써서 진행했을 경우 각 성적 입력,출력 부분은 독립적으로 검사한다.

(o)
else를 쓸경우 앞 if와 이어져서 1번째 if가 성립 된다면 2번째 3번째 조건은 그냥 넘어가게 된다.

profile
https://mo-i-programmers.tistory.com/

0개의 댓글