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

标签 java

一个注册学生的程序,但是在输入有先例的先前学生编号时,它应该在“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/

相关文章:

java - 即使我在正确的域中,Selenium addCookie 也会出现无效的 Cookie 域异常

java - 调用获取 XML 元素返回 null

java - 覆盖 JComponent.getBaselineResizeBehavior() 但保持 Java5 兼容性

java - 错误: Invalid Client - Sign In With Apple with Spring Boot

java - 将java编写的HttpClient转换为C#以调用Web api

java - 如何隐藏服务类并防止@Autowire?

java - 您可以创建自己的 JTA 事务吗?

java - Map的线程安全Get和Put方法(性能测试)

java - 业务事件处理程序在 openbravo 中不工作

java - 请解释 intern() 方法的功能