這是我收到的錯誤。我的Java程序編譯沒有任何錯誤,但不會完全運行
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.nextDouble(Scanner.java:2413)
這是我正在使用的代碼。我可以輸入「姓氏」,但是我收到上面顯示的錯誤消息。任何幫助將不勝感激。
import java.util.*;
public class lab81
{
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
System.out.print("Enter last name:");
double lastName;
lastName = input.nextDouble();
System.out.print("Enter first name:");
double firstName;
firstName = input.nextDouble();
System.out.print("Enter this years units:");
double thisYearsUnits;
thisYearsUnits = input.nextDouble();
System.out.print("Enter last years units:");
double lastYearsUnits;
lastYearsUnits = input.nextDouble();
double numberOfUnits = thisYearsUnits;
final double UNITS1 = 1000;
final double UNITS2 = 3000;
final double UNITS3 = 6000;
final double BONUS1 = 25;
final double BONUS2 = 50;
final double BONUS3 = 100;
final double BONUS4 = 200;
if(thisYearsUnits < lastYearsUnits)
{
double bonusAmount;
bonusAmount = 0;
System.out.println(lastName + ", " + firstName);
System.out.println("Bonus is $" + bonusAmount);
}
else if(numberOfUnits <= UNITS1)
{
double bonusAmount;
bonusAmount = BONUS1;
System.out.println(lastName + ", " + firstName);
System.out.println("Bonus is $" + bonusAmount);
}
else if(numberOfUnits <= UNITS2)
{
double bonusAmount;
bonusAmount = BONUS2;
System.out.println(lastName + ", " + firstName);
System.out.println("Bonus is $" + bonusAmount);
}
else if(numberOfUnits <= UNITS3)
{
double bonusAmount;
bonusAmount = BONUS3;
System.out.println(lastName + ", " + firstName);
System.out.println("Bonus is $" + bonusAmount);
}
else if(numberOfUnits > UNITS3)
{
double bonusAmount;
bonusAmount = BONUS4;
System.out.println(lastName + ", " + firstName);
System.out.println("Bonus is $" + bonusAmount);
}
}
}
你認爲'nextDouble'有什麼用途?自從什麼時候是姓氏數字? – 2015-04-05 00:29:21
當你在調試器中遍歷代碼時,你看到了什麼? – 2015-04-05 01:07:08