0

The code below tries to read membershipid and a choice of membership from user. user enter -1 to indicate end of program. system will now display sum and exit. I keept getting the error below which is very strange:

package task2;

import java.util.HashMap;
import java.util.Scanner;

public class Task2 {
    // i will make scanner class object accessible to current class

    static Scanner read = new Scanner(System.in);
    static HashMap<String, Double> storeMembers = new HashMap<>();
    static int choice;
    static String membershipID;
    static double amount;
    static double total;

    public static void displaySum() {
        for (Double sum : storeMembers.values()) {
            amount += sum;
        }
    }

    public static void main(String[] args) {
        System.out.println("Enter  MembershipID eg: JPU123D");
        System.out.println("For Standard Membership, Enter:  1");
        System.out.println("For Concession Membership,Enter: 2");

        while (read.hasNext()) {
            choice = read.nextInt();
            membershipID = read.nextLine();
            if (choice == 1) {

                if (storeMembers.containsKey(membershipID)) {
                    amount = Membership.standardMemberAnnualfee();
                    storeMembers.put(membershipID, amount);
                }
            } else {
                amount = Membership.standardMemberAnnualfee() + Membership.standardMemberjoinfee();
                storeMembers.put(membershipID, amount);
            }
            if (choice == -1) {
                System.out.println("Now closing the application!");
                System.out.println("Total fees:");
                displaySum();
                System.exit(1);
            }
        }// end while
    }
}

error says:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at task2.Task2.main(Task2.java:28)
Java Result: 1
BUILD SUCCESSFUL (total time: 8 seconds)

can any one tell me what am i doing wrong because my scanner object i believe is reading the correct input type.

Juan Carlos Mendoza
  • 5,203
  • 7
  • 21
  • 48
Jack
  • 61
  • 7

0 Answers0