2013-05-15 2 views
0

한 번 실행 한 후 if/else-if 문을 다시 실행하도록 코드를 변경하려면 어떻게해야합니까?한 번 실행 한 후에 메서드를 다시 시작하려면 어떻게해야합니까?

예. 어떻게 갈 수 상단 메뉴> 입력을위한 프롬프트 (이는 2) 당신은 어떤 종류를 사용할 수 있습니다

/** 
* A simple program of a grocery store, which assists 
* the purchases, calculate total price and display bill. 
**/ 

public class GroceryStore { 

    // this method manages the entire shopping process 
    public void start() { 
     final String UPI = "wcor690"; // a constant for student UPI 

     Stock stock = new Stock(); 
     stock.loadItems("stock.txt"); 
     Cart cart = new Cart(); 

     System.out.println("=============================================================="); 
     System.out.println("------This is a simple grocery store program by " + UPI + ".------"); 
     topMenu(); 
     int input = getChoice(1, 3); 
     if (input == 1){ 
      stock.displayItems(); 
      topMenu(); 
     } 
     else if (input == 2){ 
      subMenu(); 
      input = getChoice(1, 4); 
      if (input == 1){ 
       String itemCode = Keyboard.readInput(); 
       cart.addItem(stock.findItem(itemCode)); 
       topMenu(); 
      } 
      else if (input == 2){ 
       String itemCode = Keyboard.readInput(); 
       cart.deleteItem(itemCode); 
       subMenu(); 
      } 
      else if (input == 3){ 
       cart.checkOut(); 
      } 
      else if (input == 4){ 
       cart.deleteAll(); 
       System.out.println("All items are cleared from the shopping cart"); 
       topMenu(); 
      } 
     } 
     else if (input == 3){ 
      System.out.println("Exit"); 
     } 

     stock.saveItems("stock2.txt"); 
     System.out.println("--------------------------------------------------------------"); 
     System.out.println("---------------Thank you for shopping with us!----------------"); 
     System.out.println("=============================================================="); 
    } 

    // this method displays the top-level menu 
    private void topMenu() { 
     System.out.println("1. Show items"); 
     System.out.println("2. Start shopping online"); 
     System.out.println("3. Exit"); 
    } 

    // this method displays the second-level menu 
    private void subMenu() { 
     System.out.println("1. Add item"); 
     System.out.println("2. Remove item"); 
     System.out.println("3. Checkout"); 
     System.out.println("4. Exit without buying"); 
    } 

    // this method gets the user's input choice 
    private int getChoice(int lower, int upper) { 
     String userInput = Keyboard.readInput(); 
     int input = Integer.parseInt(userInput); 
     while (input<lower || input>upper){ 
      System.out.println("Invalid choice, please enter a valid choice"); 
      input = Integer.parseInt(Keyboard.readInput()); 
     } 
     return input; 
    } 

} 

답변

2

(1 OR2가)> 위로 메뉴> 추가/삭제 입력/하위 메뉴> 메뉴> 프롬프트 of 루프는 조건이 충족 될 때까지 코드를 계속 excecute합니다.

체크 아웃 this link을 확인하십시오.

do { 
    code line 1; 
    code line 2; 
    code line 3; 
    ... 
} while(yourCondition); 

yourCondition 경우는 만족 (yourCondition == true), 코드 code line 1로 돌아갈 것입니다 (dowhile 사이의 코드 블록을 수행)하고 조건 일단 중단됩니다 : 여기

은 예입니다 만족하지 않습니다 ( yourCondition == false).

이제 어떻게 작동하는지 이해 한 후이를 코드에 쉽게 적용 할 수 있습니다.

관련 문제