0

我基本上只是在用户输入零时才尝试结束程序,否则继续循环输入进行处理。

我有一个关于发生了什么的问题,每当我尝试编译它时,它总是给我一个这样的错误:

预期输出您的输出 1 16 1 线程“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());
 }
 }
4

1 回答 1

1

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(); 
于 2013-09-09T08:10:09.933 回答