我有一个空的浮动数组。当我尝试输入带小数点的数据,例如17.5时,我收到此错误代码:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextFloat(Unknown Source)
at GradeCalc.GetInput(GradeCalc.java:27)
at GradeCalc.<init>(GradeCalc.java:43)
at GradeCalc.main(GradeCalc.java:47)
我的猜测是调试器说数据与数据类型不匹配。这很奇怪,因为17.5是一个浮点数。这里发生了什么? 错误位于:
>GradeCalc()
>>GetInput()
>>>gradeValue[i] = sc.nextFloat();
public class GradeCalc {
float gradeValue[] = new float[19];
String gradeName[] = { "Sv1", "Sv2", "En5", "En6", "En7", "Ma1c", "Ma2c",
"Ma3c", "Ma4", "Ke1", "Ke2", "Bi1", "Bi2", "Fy1", "Fy2", "Fr4",
"Prog", "Körsång", "I&H" };
String Y;
Scanner sc = new Scanner(System.in);
public void Calc(float gradeValue[]) {
float average_grade, sumofgrade;
for (int i = 0; i < gradeValue.length; i++) {
sumofgrade = gradeValue[i];
}
}
public void GetInput() {
for (int i = 0; i <= 19; i++) {
System.out.println("Enter grade value for " + gradeName[i]);
gradeValue[i] = sc.nextFloat();
}
Calc(gradeValue);
}
public void AtStart() {
System.out.println("Press Enter Y to Start: ");
Y = sc.next();
if (Y == "Y") {
GetInput();
}else{ System.exit(0);}
}
public GradeCalc() {
//AtStart();
GetInput();
}
public static void main(String args[]) {
new GradeCalc();
}
}