Tariq Odeh
Tariq Odeh

Reputation: 21

getting user input and altering it in java

I am asked to get user input for a membership type.

memberships being Gold/Silver/Bronze.

Gold membership = 750
Silver membership = 450
Bronze membership = 250

The next step is to ask the user if he requires snow tyre hire, if so it's an additional 10 percent, however I was stuck at that point, is there a way to get the result of the membership input by the user and use an if statement to determine whether or not to add 10 percent.

Here's the code i have so far.

import java.io.*;
public class SkiLodge {

    public static void main(String[] args) throws Exception
    {

        InputStreamReader ui = new InputStreamReader (System.in);
        BufferedReader gd = new BufferedReader(ui);
        BufferedReader sr = new BufferedReader(ui);
        BufferedReader bz = new BufferedReader(ui);

        System.out.println("Select Membership Type: (Gold/Silver/Bronze");
        String membership = gd.readLine();

        double x;

        if (membership.equals("Gold"))
            System.out.println("Gold Membership Selected: £" + (x = 750));
        else if (membership.equals("Silver"))
            System.out.println("Silver Membership Selected: £" + (x = 450));
        else if (membership.equals("Bronze"))
            System.out.println("Bronze Membership Selected: £" + (x = 250));
        else System.out.println("Invalid Membership");



        System.out.println("Do you require snow tyre rental? (yes/no)");
        String tyreRental = sr.readLine();


        if (tyreRental.equals("yes"))   
            System.out.println(x = x * 1.1);

    }

}

Upvotes: 0

Views: 51

Answers (2)

gustf
gustf

Reputation: 2017

You should only create one Reader and use that to read all input. Since they all origin from the System.in your input will be in all the readers. For example, the input for "Gold/Silver/Bronze" will be in everyone of your BufferedReader's so when you read the String tyreRental = sr.readLine(); you will actually read the "Gold/Silver/Bronze" input again.

This should be working better for you:

import java.io.*;
public class SkiLodge {

    public static void main(String[] args) throws Exception
    {

        InputStreamReader ui = new InputStreamReader (System.in);
        BufferedReader inputReader = new BufferedReader(ui);

        System.out.println("Select Membership Type: (Gold/Silver/Bronze");
        String membership = inputReader.readLine();

        double x = 0.0d;

        if (membership.equals("Gold"))
            System.out.println("Gold Membership Selected: £" + (x = 750));
        else if (membership.equals("Silver"))
            System.out.println("Silver Membership Selected: £" + (x = 450));
        else if (membership.equals("Bronze"))
            System.out.println("Bronze Membership Selected: £" + (x = 250));
        else System.out.println("Invalid Membership");



        System.out.println("Do you require snow tyre rental? (yes/no)");
        String tyreRental = inputReader.readLine();


        if (tyreRental.equals("yes"))
            System.out.println(x = x * 1.1);

    }

}

Upvotes: 1

Francisunoxx
Francisunoxx

Reputation: 1458

Hope this helps. :)

import java.io.*;
public class SkiLodge {

public static void main(String[] args) throws Exception
{

    InputStreamReader ui = new InputStreamReader (System.in);
    BufferedReader gd = new BufferedReader(ui);
    BufferedReader sr = new BufferedReader(ui);
    BufferedReader bz = new BufferedReader(ui);

    System.out.println("Select Membership Type: (Gold/Silver/Bronze");
    String membership = gd.readLine();

    double x = 0.0;
    double a = 0.0;
    if (membership.equals("Gold"))
        System.out.println("Gold Membership Selected: £" + (x = 750));
    else if (membership.equals("Silver"))
        System.out.println("Silver Membership Selected: £" + (x = 450));
    else if (membership.equals("Bronze"))
        System.out.println("Bronze Membership Selected: £" + (x = 250));
    else System.out.println("Invalid Membership");


    System.out.println("Do you require snow tyre rental? (yes/no)");
    String tyreRental = sr.readLine();

    x = x * 1.1;
    a = x;
    if (tyreRental.equals("yes"))   
        System.out.println(a);

}
}

Upvotes: 0

Related Questions