gpt4 book ai didi

使用扫描仪的 Java 输入不匹配错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:20:38 25 4
gpt4 key购买 nike

我是一名 Java 新手,正在尝试完成一个程序,该程序使用扫描仪输入 5 个学生的姓名,然后在其中循环以获得每个学生的 3 个成绩。我被困住了,因为我不断收到输入不匹配错误,但我不知道为什么。我尝试正确匹配变量输入的类型。任何帮助将不胜感激!

这就是我所拥有的:

import java.util.Scanner;

public class StudentGrades {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Declare arrays, grades to hold [student #][course] and correspond to the grade. studentNames to be paralell and hold the names.
int [][] grades;
grades = new int[5][3];
String[] studentNames = new String[5];
int studentNumber = 0;
int courseNumber = 0;

// Create loops to put values in both arrays, using student# as a counter
if (studentNumber < 5) {
System.out.println("Enter the student name");
studentNames[studentNumber] = input.next();
// Nested loop to enter the grades
if (courseNumber < 5) {
System.out.println(" Enter a grade for " + studentNames[studentNumber]+" for course #" + courseNumber);
grades[studentNumber][courseNumber] = input.nextInt();
courseNumber = courseNumber + 1;
}
studentNumber = studentNumber + 1;
}

}

}

这就是我得到的:

Exception at thread "main" java.util.InputMismatchException
at java.util.Scanner.throwfor{Scanner.java:909}
at java.util.Scanner.next{Scanner.java:1530}
at java.util.Scanner.nextInt{Scanner.java:2160}
at java.util.Scanner.nextInt{Scanner.java:2119}
at StudentGrades.main{StudentGrades.java:20}

最佳答案

您的问题在第 20 行。

grades[studentNumber][courseNumber] = input.nextInt();

这意味着在输入中,它需要一个 int,但它发现了另一个东西,比如 double、char 数组或其他任何东西

还有一个问题,你声明你的成绩为:

grades = new int[5][3];

最后一个数字表示您可以访问 [0..4][0..2] 的成绩

但是你的 if 语句:

if (courseNumber < 5) 

意味着您将在

中访问大于“2”的数字
grades[studentNumber][courseNumber] = input.nextInt();

这将引发OutOfBoundsException

关于使用扫描仪的 Java 输入不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com