正在尝试检查用户选择的ID是否已在Java程序中选择
我正在进行一个学校项目,该项目基本上允许用户创建学生、班级、编辑他们,等等。我正在尝试为用户创建的每个学生分配ID,现在我允许用户输入他们自己的ID,如果尚未选择ID,程序会将其与其他ID进行比较,完成,但如果已选择,将显示一条消息,说明已选择,请选择其他ID,但我仍停留在这一部分,以下是我的代码,为简化起见,我仅显示main和create student方法,我会对我的想法发表//评论,希望你们能帮助我提出一些想法,请查看CreateStudent()方法 你需要使用一种新的方法。课程以大写字母开头;变量名以小写字母开头。两者都使用驼峰案例 和大多数初学者一样,您编写的代码太多。您太担心屏幕I/O了 如果您已经了解了Java集合,我建议您创建正在尝试检查用户选择的ID是否已在Java程序中选择,java,java.util.scanner,Java,Java.util.scanner,我正在进行一个学校项目,该项目基本上允许用户创建学生、班级、编辑他们,等等。我正在尝试为用户创建的每个学生分配ID,现在我允许用户输入他们自己的ID,如果尚未选择ID,程序会将其与其他ID进行比较,完成,但如果已选择,将显示一条消息,说明已选择,请选择其他ID,但我仍停留在这一部分,以下是我的代码,为简化起见,我仅显示main和create student方法,我会对我的想法发表//评论,希望你们能帮助我提出一些想法,请查看CreateStudent()方法 你需要使用一种新的方法。课程以大写字
CourseCatalog
和StudentFloster
类,以便在创建类和学生时保存它们
学生名册
可以轻松确定学生id是否已经存在:
public class StudentRoster {
private static int ID = 1;
private Map<Integer, Student> roster = new TreeMap<>();
public void addStudent(int id, Student s) { this.roster.put(id, student); }
public void addStudent(Student s) { this.roster.put(ID++, student); }
public boolean hasId(int id) { return this.roster.containsKey(id); }
public Student getStudent(int id) { return this.roster.get(id); }
}
公共班级学生名册{
私有静态int ID=1;
私有地图花名册=新树地图();
public void addStudent(int-id,Student s){this.floster.put(id,Student);}
public void addStudent(Student s){this.floster.put(ID++,Student);}
公共布尔hasId(int-id){返回this.lotster.containsKey(id);}
公立学生getStudent(int-id){返回this.floster.get(id);}
}
好的,您需要将您的ID存储在一个集合中,并检查您是否已经添加了此ID。
最简单的方法是在程序开始时读取输出文件,并将所有ID保存到哈希集中:
然后,当输入一个新ID时,您需要检查该ID是否已经在哈希集中。
如果ID存在,则打印错误,否则将学生添加到文件中,并将ID添加到哈希集
还有一个提示,您不应该使用以下代码:
if(userInput == 1) {
CreateStudent();
} else if(userInput == 2) {
CreateCourse();
} else if(userInput == 3) {
CreateEnrollment();
} else if(userInput == 4 ) {
EditStudent();
} else if(userInput == 5) {
EditCourse();
} else if(userInput == 6) {
EditEnrollment();
} else if(userInput == 7) {
DisplayStudent();
} else if(userInput == 8) {
DisplayCourse();
} else if(userInput == 9) {
DisplayEnrollment();
} else if(userInput == 10) {
GradesSubMenu();
} else if(userInput == 0) {
System.out.print("Done");
} else {
System.out.println("Invalid Option, Please try again.");
userInput = keyboard.nextInt();
if(userInput == 1) {
...
改用类似的方式:
int userInput = 0;
do {
System.out.println("Please enter a valid choice(1-10, 0 to Quit) :");
userInput = keyboard.nextInt();
if(userInput == 1) {
CreateStudent();
} else if(userInput == 2) {
CreateCourse();
} else if(userInput == 3) {
CreateEnrollment();
} else if(userInput == 4 ) {
EditStudent();
} else if(userInput == 5) {
EditCourse();
} else if(userInput == 6) {
EditEnrollment();
} else if(userInput == 7) {
DisplayStudent();
} else if(userInput == 8) {
DisplayCourse();
} else if(userInput == 9) {
DisplayEnrollment();
} else if(userInput == 10) {
GradesSubMenu();
}
} while (userInput != 0);
当然,这也不是最好的方法,但我想你只是一个初学者,所以不要走得太深,试图让你的项目按照你的方式工作。我目前是一名Python软件开发人员,并且会做出反应,但试图学习Java,我参加的课程并不好,也没有太多帮助,我们学习的基础是《从java开始,从控制结构到数据结构》第4版。我们还没找到那个学生谢谢!这看起来非常有帮助,将提供一个散列集的镜头,刚刚开始在这个Java世界
int userInput = 0;
do {
System.out.println("Please enter a valid choice(1-10, 0 to Quit) :");
userInput = keyboard.nextInt();
if(userInput == 1) {
CreateStudent();
} else if(userInput == 2) {
CreateCourse();
} else if(userInput == 3) {
CreateEnrollment();
} else if(userInput == 4 ) {
EditStudent();
} else if(userInput == 5) {
EditCourse();
} else if(userInput == 6) {
EditEnrollment();
} else if(userInput == 7) {
DisplayStudent();
} else if(userInput == 8) {
DisplayCourse();
} else if(userInput == 9) {
DisplayEnrollment();
} else if(userInput == 10) {
GradesSubMenu();
}
} while (userInput != 0);