코드 그라데이션

230327 무한루프 사용을 지양해야 하는 이유 본문

Java, SpringBoot 추가 공부

230327 무한루프 사용을 지양해야 하는 이유

완벽한 장면 2023. 3. 28. 23:20

while(true) 하고 박아두고, 

if(조건1) ~~~

뭐 요런 식으로 하면 가장 간편하긴 하다.

 

public static void main(String[] args) {
  while (true) {
    if (조건1) {
      break;
    }
    if (조건2) {
      continue;
    }
    if (조건3) {
      continue;
    }
  }

 

그런데 이건 code smell 이라고 하여

매우 지저분한, 지양해야할 코드로 판단한다.

 

그래서 필요한 부분만 조건에 야무지게 걸어서 코드를 정돈하면,

훨씬 더 깔끔한 코드를 짤 수 있게 될 것이다.

 

여기에 강사님 설명을 덧붙이자면

두번째 질문은 break, continue를 많이 쓰면 소스가 지저분 해진다기 보다
무한루프에 break, continue 같은 구조로 만들기 때문에 생각을 해보는게 줄어 들 수 있어서
저는 그렇게 안짜는 거지 원래는 그렇게 구현해도 무방은 합니다.
문제는 그렇게 구현을 하셔도 됩니다.
저는 좀 더 더 생각을 할 수 있게 break, continue를 적게 사용하는 겁니다.

 

앞선 BurgerTest를 예제로 가져와서 봐보면

원래 코드

package megait.backend_lecture.Day06;

import java.util.Scanner;

public class BurgerTest {

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String menu;
    String sideMenu;
    String pay;

    boolean check = true; // true / false로 빠져나오게 하기 위해서 만들어줌.
    while (check) {
      // 큰 틀 : 전체 메뉴 선택 분기
      System.out.print("메뉴를 입력하세요. \n 1.갈릭버거 2.페페로니 3.페포로니치킨 4.콜로수워치킨 \n : ");
      int menuNum = sc.nextInt();

      switch (menuNum) {
        // 메인 메뉴가 들어가면, 사이드 메뉴 선택하는 분기 스위치 케이스 분류
        // 일단 메뉴 선택 분기
        case 1:
          menu = "갈릭버거";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum1 = sc.nextInt();

          // 이 안에 사이드 메뉴 선택 분기
          switch (sideNum1) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();

              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }

              break; // 선택 끝 // 메뉴 선택으로 간다.

            // 사이드메뉴 케이스 2
            case 2:
              sideMenu = "콜라";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();

              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break; // 메뉴 입력으로 가는 break

            //사이드메뉴 선택 케이스 3
            case 3:
              sideMenu = "사이다";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();
              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break; //메뉴 입력으로 가는 break

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다. 다시 입력하세요.");
              break;//메뉴 입력으로 가는 break
          }
          break;

        case 2:
          menu = "페퍼로니";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum2 = sc.nextInt();

          switch (sideNum2) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n : ");
              pay = sc.next();
              // 결제 수단 if문 분기 2
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / " + "사이드 메뉴 : " + sideMenu + " / " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break;

            case 2:
              sideMenu = "콜라";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n :");
              pay = sc.next();
              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n : ");
              pay = sc.next();
              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

        case 3:
          menu = "페포로니치킨";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum3 = sc.nextInt();

          switch (sideNum3) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 수단을 입력하세요. > \"카드\" / \"현금\" / \"상품권\" \n :");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }

            case 2:
              sideMenu = "콜라";
              System.out.println("결제 수단을 입력하세요.> \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 수단을 입력하세요. > \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

        case 4:
          menu = "페포로니";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum4 = sc.nextInt();

          switch (sideNum4) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 수단을 입력하세요.> 카드 / 현금 / 상품권 : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
            case 2:
              sideMenu = "콜라";
              System.out.println("결제 수단을 입력하세요.> \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 수단을 입력하세요. > \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;
            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

        case 5 :
          System.out.println("프로그램을 종료합니다.");
          check = false;
          break;

        default:
          System.out.println("잘못된 입력입니다.");
        break;
      }
    }

  }
}

 

 

조금 바꾼 코드

import java.util.Scanner;
public class BurgerTest {

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String menu;
    String sideMenu;
    String pay;

    System.out.print("메뉴를 입력하세요. \n 1.갈릭버거 2.페페로니 3.페포로니치킨 4.콜로수워치킨 \n : ");
    int menuNum = sc.nextInt();
    while (num != 5) {
      // 큰 틀 : 전체 메뉴 선택 분기


      switch (menuNum) {
        case 1:
          menu = "갈릭버거";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum1 = sc.nextInt();

          // 이 안에 사이드 메뉴 선택 분기
          switch (sideNum1) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }

              break; 

            case 2:
              sideMenu = "콜라";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break; // 메뉴 입력으로 가는 break

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();
              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break; //메뉴 입력으로 가는 break

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다. 다시 입력하세요.");
              break;//메뉴 입력으로 가는 break
          }
          break;

        case 2:
          menu = "페퍼로니";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum2 = sc.nextInt();

          switch (sideNum2) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n : ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / " + "사이드 메뉴 : " + sideMenu + " / " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break;

            case 2:
              sideMenu = "콜라";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n :");
              pay = sc.next();
              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n : ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

        case 3:
          menu = "페포로니치킨";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum3 = sc.nextInt();

          switch (sideNum3) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 수단을 입력하세요. > \"카드\" / \"현금\" / \"상품권\" \n :");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }

            case 2:
              sideMenu = "콜라";
              System.out.println("결제 수단을 입력하세요.> \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 수단을 입력하세요. > \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

        case 4:
          menu = "페포로니";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum4 = sc.nextInt();

          switch (sideNum4) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 수단을 입력하세요.> 카드 / 현금 / 상품권 : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
            case 2:
              sideMenu = "콜라";
              System.out.println("결제 수단을 입력하세요.> \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 수단을 입력하세요. > \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;
            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

//        case 5 :
//          System.out.println("프로그램을 종료합니다.");
//          check = false;
//          break;
//이 부분이 없어지고,

        default:
          System.out.println("잘못된 입력입니다.");
        break;
      }
    System.out.print("메뉴를 입력하세요. \n 1.갈릭버거 2.페페로니 3.페포로니치킨 4.콜로수워치킨 \n : ");
    int menuNum = sc.nextInt();
    // 여기 메뉴 선택하는 게 한번 더 나와줘야함.  
    
    // 이 상태면 메뉴를 입력하세요 가 한번 더 등장하고, 5 입력하면 끝남.
    }

  }
}

근데 탈출하는 곳이 한 곳이면 무한 루프 괜찮게 쓸 수 있어.

 

마지막으로...

주문 절차가 정상적으로 다 끝나자마자 

메뉴 선택하는 부분이 다시 출력되지 않고 곧바로 종료되게 하려면

 

package megait.backend_lecture.Day06;

import java.util.Scanner;

public class BurgerTest {

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String menu;
    String sideMenu;
    String pay;

    boolean check = true; 
    while (check) {
      // 큰 틀 : 전체 메뉴 선택 분기
      System.out.print("메뉴를 입력하세요. \n 1.갈릭버거 2.페페로니 3.페포로니치킨 4.콜로수워치킨 \n : ");
      int menuNum = sc.nextInt();

      switch (menuNum) {
        // 메인 메뉴가 들어가면, 사이드 메뉴 선택하는 분기 스위치 케이스 분류
        // 일단 메뉴 선택 분기
        case 1:
          menu = "갈릭버거";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum1 = sc.nextInt();

          // 이 안에 사이드 메뉴 선택 분기
          switch (sideNum1) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();

              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              	System.out.println("주문 절차가 끝났습니다. 프로그램 종료합니다.)
                check = false; 
              
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }

              break; // 선택 끝 // 메뉴 선택으로 간다.

            // 사이드메뉴 케이스 2
            case 2:
              sideMenu = "콜라";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();

              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break; // 메뉴 입력으로 가는 break

            //사이드메뉴 선택 케이스 3
            case 3:
              sideMenu = "사이다";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" ");
              pay = sc.next();
              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + ", " + " 사이드 메뉴 : " + sideMenu + ",  " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break; //메뉴 입력으로 가는 break

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다. 다시 입력하세요.");
              break;//메뉴 입력으로 가는 break
          }
          break;

        case 2:
          menu = "페퍼로니";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum2 = sc.nextInt();

          switch (sideNum2) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n : ");
              pay = sc.next();
              // 결제 수단 if문 분기 2
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / " + "사이드 메뉴 : " + sideMenu + " / " + "결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다. ");
              }
              break;

            case 2:
              sideMenu = "콜라";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n :");
              pay = sc.next();
              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제 수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 방법을 입력하세요.> \"카드\" / \"현금\" / \"상품권\" \n : ");
              pay = sc.next();
              // 결제 수단 if문 분기
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

        case 3:
          menu = "페포로니치킨";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum3 = sc.nextInt();

          switch (sideNum3) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 수단을 입력하세요. > \"카드\" / \"현금\" / \"상품권\" \n :");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }

            case 2:
              sideMenu = "콜라";
              System.out.println("결제 수단을 입력하세요.> \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 수단을 입력하세요. > \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;

            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

        case 4:
          menu = "페포로니";
          System.out.print("사이드 메뉴를 입력하세요.> 1.감자튀김 2.콜라 3. 사이다 \n : ");
          int sideNum4 = sc.nextInt();

          switch (sideNum4) {
            case 1:
              sideMenu = "감자튀김";
              System.out.println("결제 수단을 입력하세요.> 카드 / 현금 / 상품권 : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
            case 2:
              sideMenu = "콜라";
              System.out.println("결제 수단을 입력하세요.> \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();

              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }

            case 3:
              sideMenu = "사이다";
              System.out.println("결제 수단을 입력하세요. > \"카드\" + \"현금\" + \"상품권\" \n : ");
              pay = sc.next();
              if (pay.equals("카드") || pay.equals("현금") || pay.equals("상품권")) {
                System.out.println(
                    "주메뉴 : " + menu + " / 사이드 메뉴 : " + sideMenu + " / 결제수단 : " + pay);
              } else {
                System.out.println("잘못된 결제수단입니다.");
              }
              break;
            default:
              System.out.println("잘못된 사이드 메뉴 입력입니다.");
              break;
          }
          break;

        case 5 :
          System.out.println("프로그램을 종료합니다.");
          check = false;
          break;

        default:
          System.out.println("잘못된 입력입니다.");
        break;
      }
    }

  }
}

요런 식으로 해당 case 마다 집어넣어주면 된다.(check=false;)

728x90
Comments