2012-07-30 238 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理解对象的最简单的方法。 (或其他一些书籍或教程)

他们告诉我有关比萨饼,以及如何做有良好的做法...你会发现重新启动如何工作!