Tom C
Tom C

Reputation: 814

Trying to add if statement values to the total answer in Java

quite new to Java so trying to understand it can be difficult.

Anyways the problem, as part of a task I have to code a theatre tickets console application. I've almost finished I'm just trying to add the last part

As part of the task we have to ask the user if they want the tickets to be posted, if yes this incurs a charge which will be applied to the total charge. Currently I'm unsure of how to do this. At the moment I am currently working with If and else statements and.. Well you'll see below.

   System.out.println ("Do you require the tickets to be posted?\n(£2.34 for post and packing for the entire order)\n(please enter 'Yes' on the next line if you require postage)");
   String postinp = scanner.next();

           if ("Yes".equals(postinp)){
            System.out.println("Postage will be added to your cost" );
           }
            else
            System.out.println("Postage will not be added to your cost");

Well I'm trying to code, if the user enters 'yes' then it adds on the postage charge to the total, but in this section of code I'm unsure how to do that.

Any help would be appreciated. Thanks!

Upvotes: 0

Views: 3456

Answers (5)

Tdorno
Tdorno

Reputation: 1571

Inside the if-statement all we need to do is add your £2.34 to the total sum being calculated by the program.

    public static void main(String args[]) {
       Scanner input = new Scanner(System.in);
       double total = 10.00;
       System.out.println("Do you require the tickets to be posted?\n(£2.34 for post and packing for the entire order)\n(please enter 'Yes' on the next line if you require postage)");

       if ("Yes".equalsIgnoreCase(input.next())) {
          System.out.println("Postage will be added to your cost");
          total = total + 2.34;
       } else
          System.out.println("Postage will not be added to your cost");
   }

Upvotes: 2

Vidya
Vidya

Reputation: 30310

You seem to need to resolve two things--evaluating the answer and then acting accordingly.

Try this:

String postinp = scanner.next();
if ("Yes".equalsIgnoreCase(postinp)) {
   cost += postage;
   System.out.println("Postage will be added to your cost" );
}
else {
   System.out.println("Postage will not be added to your cost");
}

The if block checks if the result is some form of "yes" without regard to case. Then it assumes that cost and postage variables (floats) are available and initialized from somewhere. In the "yes" case, cost is augmented by postage.

Also, since you are just learning it isn't a big deal, but at some point you might want to consider your postage to be a value consumed from a constant or from a configuration file. Maybe the initial cost can be too.

Upvotes: 0

T I
T I

Reputation: 9933

You can add more code within the then-else blocks of an if statement

if ( "Yes".equals(postinp) ) 
{
    this.cost += 2.34 ; // or whatever it is you need to do

    System.out.println("Postage will be added to your cost" );
}
else 
{
    System.out.println("Postage will not be added to your cost");
}

Upvotes: 0

Antix
Antix

Reputation: 369

What I would do is change

if ("Ye".equals(postinp)) {

to

if ("yes".equals(postinp.toLowerCase())) {

That way it won't be case sensitive to what the user inputs, because otherwise they'd have to input Yes exactly.

Upvotes: 0

Robin Dijkhof
Robin Dijkhof

Reputation: 19288

use scanner.nextLine() insead of scanner.next();

and use "Yes" instead of "Ye"

Upvotes: 0

Related Questions