Issue
import java.io.*;
public class ManyTickets
{
public static void main (String [] args) throws IOException
{
String userInput;
String userInput2;
int intInput = 0;
int intInput2 = 0;
double total = 0.00;
//(1) BufferedReader ageInput = new BufferedReader (new InputStreamReader (System.in));
Question 1: Above line works fine (1) when we change it into other place which i marked as (2). // but while executing "Please enter your age"line comes first though i create bufferedreader object before that statement in case (1).I expect compiler should wait for user input but it prints the statement. Though i create ageInput before try.
try{
System.out.println("Please enter your age, or press '999' to exit.");
//(2) BufferedReader ageInput = new BufferedReader (new InputStreamReader (System.in));
userInput = ageInput.readLine();
intInput = Integer.parseInt (userInput);
while (intInput != 999)
//Question2:While executing by 999 if i type 999 without giving space it is execute it gives some output but not exit.how to avoid whitespaces in the beginning like whatever i am giving whether 999 or 999 or999 i need same output.I need exit but not for input like 99 9; I need method to avoid whitespaces in the input(beginning).
{
if (intInput < 0 || intInput > 110)
System.out.println("Invalid entry, or your age seems a bit too high to enter buy
tickets);
else if (intInput <= 12)
{
total = total + 6;
System.out.println("The ticket cost for 1 ticket is " + total);
}
else if (intInput <= 64)
{
total = total + 11;
System.out.println("The ticket cost for 1 ticket is " + total);
}
else
{
total = total + 8;
System.out.println("The ticket cost for 1 ticket is $" + total);
}
System.out.println("So far, your tickets cost is: $" + total );
System.out.print("Would you like to buy more tickets? You can buy up to 1 more ticket per customer! If no press 999to exit");
userInput = ageInput.readLine();
intInput2 = Integer.parseInt (userInput);
}
}catch (NumberFormatException e){
System.out.println("Please restart the program, and enter an integer instead!");
}
}
{
double total = 0.0;
System.out.println("Thank you, The total cost for the ticket is: $" + total);
System.out.println("Have a nice day!");
}
}
Solution
Question2:While executing by 999 if i type 999 without giving space it is execute it gives some output .how to avoid whitespaces in the beginning like whatever i am giving whether 999 or 999 i need same output. I need method to avoid whitespaces in the input.
To avoid white spaces simply remove them from strings like following:
userInput = ageInput.readLine().replaceAll(" ","");
intInput = Integer.parseInt (userInput);
Question 1: Above line works fine (1) when we change it into other place which i marked as (2). // but while executing "Please enter your age"line comes first though i create bufferedreader object before that statement in case (1).I expect compiler should wait for user input but it prints the statement. Though i create ageInput before try.
This is too ambiguous.
Answered By - Darshan Lila
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.