Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java等级计算器2_Java_String_Double_Runtime Error_Calculator - Fatal编程技术网

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后,键盘缓冲区中仍有/有行尾字符。你的第二个下一个孩子被他们噎住了。可能是重复的