gpt4 book ai didi

Java问题通过创建学生管理程序

转载 作者:行者123 更新时间:2023-12-01 17:19:49 24 4
gpt4 key购买 nike

一个注册学生的程序,但是在输入有先例的先前学生编号时,它应该在“universitaet”类的“isHere”测试函数中打印“学生已经存在”,但它确实如此,除了所有这些,问题出在哪里?

case 1:
System.out.println("Bitte Geben sie ihre matrikelnummer ein: ");
String m = in.nextLine();
if (!Student.testMN(m)) {
System.out.println("Die MatrikelNummer ist nicht gultig");
break;
}
if (!uni.isHere(m)) {
System.out.println("Der Student existiert beriets!");
break;
}
System.out.println("Bitte Geben sie ihre Vorname ein: ");
String v = in.nextLine();
System.out.println("Bitte Geben sie ihre Nachname ein: ");
String n = in.nextLine();
System.out.println("Geben sie ihre T.C ein: ");
String t = in.nextLine();
Student stud = new Student(v , n , m , t);
uni.addStudent(stud);
break;
public class Universitaet {
Vector<Student> studenten = new Vector();
private int anzahl_studenten = 0;

public boolean isHere(String m) {
for (int i = 0 ; i < studenten.size() ; i++) {
if (Integer.parseInt(m) == Integer.parseInt(studenten.get(i).getMN())) {
return false;
} else {
return true;
}
}
return true;
}
}

最佳答案

问题出在您的 isHere 方法中,您在循环本身中返回 true 。仅当循环完成且 m 未与任何学生的 MN 值匹配时,它才应返回 true。正确的实现可以如下:

public boolean isHere(String m) {
boolean found = true;
for (int i = 0 ; i < studenten.size() ; i++) {
if (Integer.parseInt(m) == Integer.parseInt(studenten.get(i).getMN())) {
found = false;
break;
}
}
return found;
}

另一种实现可以如下:

public boolean isHere(String m) {
for (int i = 0 ; i < studenten.size() ; i++) {
if (Integer.parseInt(m) == Integer.parseInt(studenten.get(i).getMN())) {
return false;
}
}
return true;
}

关于Java问题通过创建学生管理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61318635/

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