Java等级计算器2
这是我的代码:Java等级计算器2,java,string,double,runtime-error,calculator,Java,String,Double,Runtime Error,Calculator,这是我的代码: package gradecalculator; import java.util.Scanner; public class GradeCalculator { public static void main(String[] args) { String categoryName = null; double categoryGrade; double categoryWorth; dou
package gradecalculator;
import java.util.Scanner;
public class GradeCalculator
{
public static void main(String[] args)
{
String categoryName = null;
double categoryGrade;
double categoryWorth;
double Grade = 0;
String[] nameArray = new String[10];
double[] gradeArray = new double[10];
double[] worthArray = new double[10];
double[] categoryArray = new double[10];
int c = 0;
int c1 = 0;
Scanner entry = new Scanner(System.in);
while(!(categoryName = entry.next()).equals("Quit"))
{
categoryGrade = entry.nextDouble();
gradeArray[c] = categoryGrade;
categoryWorth = entry.nextDouble();
worthArray[c] = categoryWorth;
categoryName = entry.nextLine();
nameArray[c] = categoryName;
categoryArray[c] = finalCategory(categoryGrade, categoryWorth);
c++;
}
while(c != 0)
{
System.out.printf("%S:\t%f%%\tWorth: %f\n", nameArray[c1], gradeArray[c1], worthArray[c1]);
c--;
c1++;
}
while(c1 != 0)
{
Grade = Grade + categoryArray[c];
c1--;
c++;
}
}
public static double finalCategory(double Grade, double Worth)
{
return (Grade * (Worth / 100));
}
}
当我输入第3个输入类别名称时,就会发生错误-它出现在第29行:
categoryWorth = entry.nextDouble();
错误:
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.nextDouble(Scanner.java:2413)
at gradecalculator.GradeCalculator.main(GradeCalculator.java:26)
Java Result: 1
考虑到Netbeans给我的行与字符串输入无关,我不确定是什么导致了错误。如果有人知道我如何解决这个问题,我将不胜感激。谢谢。如果这是下一个双重问题,我不认为它与categoryName有关。可能它在while循环的第二次迭代中中断了?请尝试在此之前添加entry.nextLine。检索第一个nextDouble后,键盘缓冲区中仍有/有行尾字符。你的第二个下一个孩子被他们噎住了。可能是重复的