2012-07-30 179 views
0

我需要創建一個java應用程序,在這個應用程序中,在每個問題後詢問用戶是否要繼續或不繼續。重新啓動Java應用程序

E.g 你叫什麼名字? 你想繼續嗎?是/否 你想要點什麼披薩?

到目前爲止,我的代碼是這樣的,但我不知道在若循環

public class Mod2P5{ 
public static void main(String[]args){ 

    while(true){ 


Double cost = 0.00; 
String cont = "Y"; 
/*Start of Menu*/ 
String pizza_item[] = new String [13]; 
pizza_item [0] = "Hawian"; 
pizza_item [1] = "Meat Lovers"; 
pizza_item [2] ="Vege"; 
pizza_item [3] = "Supreme"; 
pizza_item [4] = "Pepironi"; 
pizza_item [5] = "God Father"; 
pizza_item [6] ="Mr Wedge"; 
pizza_item [7] = "Double Bacon Cheese Burger"; 
pizza_item [8] = "Mustard Beef and Bacon"; 
pizza_item [9] ="Chilly Beef"; 
pizza_item [10] = "BBQ"; 
pizza_item [11] = "Sweet and Sour"; 
pizza_item [12] = "Prawn"; 
Double pizza_price[] = new Double [13]; 
pizza_price [0] =8.50; 
pizza_price [1] = 8.50; 
pizza_price [2] =8.50; 
pizza_price [3] = 8.50; 
pizza_price [4] =8.50; 
pizza_price [5] = 8.50; 
pizza_price [6] =8.50; 
pizza_price [7] =8.50; 
pizza_price [8] = 13.50; 
pizza_price [9] =13.50; 
pizza_price [10] = 13.50; 
pizza_price [11] =13.50; 
pizza_price [12] = 13.50; 
/*End of Menu*/ 


int pickup_delivery = readInt("Press 1 for delivery or 2 for pickup."); 
cont = readString("Press Y to continue or N to cancel."); 
String name = readString("What is your name"); 
cont = readString("Press Y to continue or N to cancel."); 

    System.out.print(pickup_delivery + name + cost); 

    if (cont.equalsIgnoreCase("Y")){ 
     break; 
// goes to beginning of while loop 
    } 
    } 


} 


/*reads and returns an integer from the keyboard*/ 
public static int readInt(String prompt){ 
System.out.println(prompt); 
java.util.Scanner keyboard = new java.util.Scanner(System.in); 
return keyboard.nextInt(); 
} 
/*reads and returns a String from the keyboard*/ 
public static String readString(String prompt){ 
System.out.println(prompt); 
java.util.Scanner keyboard = new java.util.Scanner(System.in); 
return keyboard.nextLine(); 
} 
/*reads and returns a double from the keyboard*/ 
public static double readDouble(String prompt){ 
System.out.println(prompt); 
java.util.Scanner keyboard = new java.util.Scanner(System.in); 
return keyboard.nextDouble(); 
} 

} 
+0

'System.exit()'? – 2012-07-30 03:07:59

+0

如果是「家庭作業」,請添加標籤。 – 2012-07-30 03:08:16

+0

另外,你說Java,Javascript在哪裏(如你的標籤)? – 2012-07-30 03:09:17

回答

2

你可以做這樣的事情的地方:

while(true) { 
    // initialization 

    int pickup_delivery = readInt("Press 1 for delivery or 2 for pickup."); 
    cont = readString("Press Y to continue or N to cancel."); 

    if (cont.equalsIgnoreCase("n")) 
     continue; // goes to beginning of loop; restarts the questionaire 
} 

要走出循環,只需使用break;

+0

嗨,我已經嘗試過了,但它只在我回答了所有問題後才進行檢查,我需要一種在問題回答N後立即停止交互的方法。查看更新後的代碼 – 2012-07-30 03:28:50

+0

只需檢查一次即可。每次提示用戶是否要取消後,都要重新啓動條件。 – Zong 2012-07-30 03:32:28

+0

你是神話般的 – 2012-07-30 04:14:06

2

一兩件事,可能出現打滑您 -

if (cont=="n"){ //<-- this wont work 
    System.exit(); 
} 

當比較String對象,您需要使用equals()方法 - 而不是==操作。 ==運算符將比較引用,而對於String實例,這並不意味着內容。

@宗力在此提及一個更好的選擇 - 使用equalsIgnoreCase()這將使您的程序更加用戶友好。

-1

因爲它是家庭作業,請學習設計模式與Head First Design Pattern理解對象的最簡單的方法。 (或其他一些書籍或教程)

他們告訴我有關比薩餅,以及如何做有良好的做法...你會發現重新啓動如何工作!