在两个数组中搜索值

问题描述 投票:1回答:2

[n位员工的个人管理计划。提供特定功能的某些方法。我正在使用的方法对我来说非常复杂,因为它在方法创建之初就在起作用,而现在却没有。

问题:该方法无用,并给出了要搜索的名称/姓氏。即使名称存在,它也说不存在。

方法:

public static void suche(String[] vN, String[] nN, String[] adres) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Geben Sie den Vornamen des Mitarbeiters ein: ");
        String vn = sc.nextLine();
        System.out.println("Geben Sie den Nachnamen des Mitarbeiters ein: ");
        String nn = sc.nextLine();
        for (int i = 0; i < nN.length; i++) {
            for (int j = 0; j < vN.length; j++); {
                if (nn.equals(nN[i]) && vn.equals(vN[i])) {
                    System.out.println("Der/die Mitarbeier/Mitarbeiterin " + nn + " " + vn + " ist vorhanden");
                } else {
                    System.out.println("Dieser Name existiert im System nicht");
                    break;
                }
            }
        }

如果您有任何疑问,请随时提出。不知道,投票赞成也许其他人有答案。谢谢

java arrays variables search methods
2个回答
2
投票

程序当前正在寻找第一位员工,并且如果第一位员工的姓氏和名字不匹配,则程序将打印出“未找到”并放弃搜索(使用break。]]

您可以做的是保留一个变量,该变量告诉您​​是否找到了匹配的员工。如果在循环之后未找到匹配项,请然后

打印警告消息。

当您只需要一个for循环时,您也有一个双for循环。

    boolean found = false;
    for (int i = 0; i < nN.length; i++) {
        if (nn.equals(nN[i]) && vn.equals(vN[i])) {
            System.out.println("Der/die Mitarbeier/Mitarbeiterin " + nn + " " + vn + " ist vorhanden");
            found = true;
            break;
        }
    }
    if (!found) {
        System.out.println("Dieser Name existiert im System nicht");
    }

1
投票

[您正在使用i来索引两个数组,而不是对vN使用j,并且在此处for (int j = ...);后有分号,因此它总是在之后执行。

© www.soinside.com 2019 - 2024. All rights reserved.