简体   繁体   中英

Restart Java Application

I need to create a java application where the user is asked if they want to continue or not after each question.

Eg What is your name? Do you want to continue? Y/N What pizza do you want to order?

So far my code is like this, But I don't know what to place in the if loop

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();
}

}

You can do something like this:

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
}

To get out the loop, just use break; .

One thing that may be slipping you up -

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

When comparing String objects, you need to use the equals() method - NOT the == operator. The == operator will compare references, and for String instance, that does not mean content.

@Zong Li mentions a better option in this context - using equalsIgnoreCase() which will make your program more user friendly.

Because it is home work, please, learn Design Pattern with Head First Design Pattern the easiest way to understand Objects. (or some other books or tutorial)

They told about pizza, and how to do have good practices ... and you will discover how restart works!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM