为什么我的代码有一个运行时错误?(JAVA)与扫描仪
import java.util.Scanner;
public class StudentID
{
static int gradeLevel;
static int id;
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("---Student ID---");
System.out.print("Enter your first name: ");
String firstName = keyboard.next();
System.out.print("\nEnter your last name: ");
String lastName = keyboard.next();
System.out.print("\nEnter your grade level: ");
gradeLevel = keyboard.nextInt();
System.out.print("\nEnter your id: ");
id = keyboard.nextInt();
System.out.print("\nThe text for your student id is:");
String result = getIDText(firstName, lastName, gradeLevel, id);
System.out.print(result);
}
public static String getIDText(
String firstName,
String lastName,
int gradeLevel,
int id)
{
String result =
"\n\nName: " + lastName + ", " + firstName +
"\nGrade: " + gradeLevel +
"\nID: " + id;
return result;
}
}
我可以进入我的我的数据不错,但在我的ID,然后按类型之后进入运行时错误,我的程序崩溃说我必须在id = keyboard.nextInt();
我错误的错误是这样的:
java.util.InputMismatchException at
java.util.Scanner.throwFor(Scanner.java:864) at
java.util.Scanner.next(Scanner.java:1485) at
java.util.Scanner.nextInt(Scanner.java:2117) at
java.util.Scanner.nextInt(Scanner.java:2076) at
StudentID.main(StudentID.java:18)
这是什么运行时错误? –
@JacekCz java.util.InputMismatchException \t在java.util.Scanner.throwFor(Scanner.java:864) \t在java.util.Scanner.next(Scanner.java:1485) \t在java.util.Scanner中.nextInt(Scanner.java:2117) \t在java.util.Scanner.nextInt(Scanner.java:2076) \t在StudentID.main(StudentID.java:18) –
所以错误代码只是说,它无法解析什么你输入了一个整数。您的选择是将输入更改为字符串,然后自己将其解析为try catch块。如果失败,则要求用户再次输入该ID。 –