gpt4 book ai didi

java - 如何处理java中的对象?

转载 作者:行者123 更新时间:2023-12-03 09:08:08 25 4
gpt4 key购买 nike

关闭。这个问题需要debugging details .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




在下面的代码中,每次我运行程序时,程序都会停止并给我一条 InputMismatchException 消息。当然,这是我计划的一部分。

package listbasics;

import java.util.*;

class AdjustStudents {

private final ArrayList<Student> stu = new ArrayList<>(); // a Student ArrayList

public void addStudent(String name, double gpa) throws InputMismatchException {
Student stu1 = new Student(name, gpa);
stu.add(stu1);
}
}

//--------- 两个独立的类 --------------
package listbasics;

import java.util.*;

public class ArrayListBasics {

private static Scanner input = new Scanner(System.in);
private static AdjustStudents ad = new AdjustStudents();

public static void main(String[] args) {

addNewStudent();

}

public static void addNewStudent() {
System.out.println("----- Adding A New Student -----");

System.out.println(" Please enter student Name :");
String name = input.nextLine();
System.out.println(" Please enter student GPA :");
try {
double gpa = input.nextDouble();
input.nextLine();
ad.addStudent(name, gpa);
} catch (InputMismatchException ex) {
System.out.println("Please Enter Valid Value !?");
}

}
}

最佳答案

您的代码有问题是您期望双倍但用户正在输入字符串,因此您可以处理如下情况。
Scanner有许多 hasNextXXX 方法可用于验证输入。以下是关于此的简要说明:

对于 Int你可以检查像 - input.hasNextInt()对于 Double你可以检查像 - input.hasNextDouble()
对于你的例子 -

public class ArrayListBasics {

private static Scanner input = new Scanner(System.in);
private static AdjustStudents ad = new AdjustStudents();

public static void main(String[] args) {

addNewStudent();

}

public static void addNewStudent() {
System.out.println("----- Adding A New Student -----");

System.out.println(" Please enter student Name :");
String name = input.nextLine();
double gpa = 0;
System.out.println(" Please enter student GPA :");
do {
while (!input.hasNextDouble()){
System.out.println(" Please enter valid GPA :");
input.next();
}
gpa = input.nextDouble();
}while (gpa <= 0);
ad.addStudent(name, gpa);
}
}

关于java - 如何处理java中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59980110/

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