我是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
对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?
我正在做一个场景,我只想接受1或2作为输入,并且在输入另一个数字或输入无效时处理错误。为此,我正在做: 如果我添加在中,由于选项的范围在try内,它会给出一个错误。我希望它继续要求用户输入有效数字,即1或2,但如果我输入任何字符,它将进入并退出。
问题内容: 对于Java练习,我试图创建一个程序,该程序从键盘读取整数,直到输入负数为止。 并打印整数的最大值和最小值,而忽略负数。 一旦运行,是否可以在同一程序中进行连续输入?我必须每次都继续运行该程序以输入数字。 任何帮助,将不胜感激 这是我的代码的一部分-它可以工作,但是我认为有一种更简单的方法可以执行我想要的操作,但不确定如何操作! 问题答案:
对于java实践,我正在尝试创建一个程序,从键盘读取整数,直到输入负数。 它打印整数的最大值和最小值,忽略负数。 是否有一种方法可以在同一个程序运行后继续输入?每次输入一个数字,我都要继续运行程序。 任何帮助将不胜感激 这是我的代码的一部分-它可以工作,但我认为有一种更简单的方法可以做我想做的事情,但不确定如何做!
问题内容: 我正在使用Java进行编程。 我正在尝试编写可识别用户是否在基于 控制台的程序中 按Enter键的代码 。 我如何使用Java做到这一点。有人告诉我,可以使用“扫描仪”或缓冲输入阅读器完成此操作。我不了解(或不知道如何使用)缓冲输入阅读器。 我尝试使用扫描仪执行此操作,但在按Enter键两次后,程序终止,并且不起作用 谢谢 -编辑-以下代码使用字符串方法代替 如何做到这一点?使用缓冲输
所以我试着做一个简单的java预订系统,但问题是扫描仪功能不起作用,所以程序不需要任何输入。我试着把扫描仪,但它显示了一个警告,当我试图运行程序时,局部变量没有被使用,因此扫描仪不工作,所以整个程序卡在输入部分,不做任何其他事情。我对java很陌生,正试图通过创建项目来学习,所以我将感谢任何帮助和建议,谢谢。这是代码:所以显示警告局部变量不被使用的部分或一行代码是行8,9,16,34,36,46,