user2760642
user2760642

Reputation: 137

java exception java.util.InputMismatchException

I'm basically trying to end the program only when the user enter zero, else keep looping in input for processing.

I have a question on what's going on, whenever I try to compile it, it keeps giving me an error like this:

Expected Output Your Output 1 16 1 Exception in thread "main"java.util.InputMismatchException 2 Tom 69.28 2 at java.util.Scanner.throwFor(Scanner.java:909) 3 Mickey 108.42 3 at java.util.Scanner.next(Scanner.java:1530) 4 Juliet 2488.71 4 at java.util.Scanner.nextInt(Scanner.java:2160) 5 Ann 2201.94 5 at java.util.Scanner.nextInt(Scanner.java:2119) 6 Christy 894.14 6 at Bank.main(Bank.java:103)

  public static void main(String[] args) {
 // declare the necessary variables
 double x;
 int p; 
 double balance;

 String name; 
 List<Person> list = new ArrayList<Person>();

 // declare a Scanner object to read input
 Scanner sc = new Scanner(System.in); 
 // read input and process them accordingly
 x = sc.nextDouble();
 p = sc.nextInt(); 

 // while (sc.hasNext() == true)
 String action;
 // {
 do {
 action = sc.next();

 //ArrayList list = new ArrayList(); 

 if (action.equals("Create"))
 {
 do something
 }

 if (action.equals("Withdraw"))
 {

 {
 do something

 }
 }

 }


 if (action.equals("Deposit"))
 {



 // output the result
         }


 if (action.equals("0"))
 {

 System.out.println(list.size());
 for(Person d : list){
 double bal = d.getBalance(); 

 System.out.println(d.getName());

 }     }

 }

 while ( /*action != null &&*/ !action.isEmpty());
 }
 }

Upvotes: 0

Views: 1496

Answers (1)

rocketboy
rocketboy

Reputation: 9741

Docs

Thrown by a Scanner to indicate that the token retrieved does not match the pattern for the expected type, or that the token is out of range for the expected type.

Looking at your stacktrace:

java.util.Scanner.nextInt(Scanner.java:2160) 5 Ann 2201.94 5 at

That means whatever you are inputting is not an integer.

p = sc.nextInt(); 

Upvotes: 1

Related Questions