1

私の質問が少し漠然としているように思われる場合は申し訳ありません。

基本的に私がやろうとしているのは、配列に格納されているコンストラクター オブジェクトの文字列比較を使用したエラー チェックです。私は正しい考えを持っていると思います:(カウントは、従業員が別のメソッドに追加されるたびに反復する静的なintです)

public static void updateTitle(Employee searchArray[]) {
    String searchID;
    Scanner input = new Scanner(System.in);
    System.out.println("Enter Employee ID for manipulation: ");
    searchID = input.nextLine();

    for (int i = 0; i < count; i++) {
        String arrayID = searchArray[i].getEmployeeNumber();

        if (searchID.equals(arrayID) == true) {

            System.out.println("Employee: " + searchID + " found!");
            System.out.println("Employee " + searchID
                    + "'s current title is: "
                    + searchArray[i].getEmployeeTitle());
            System.out.println(" ");
            System.out
                    .println("Would you like to change this employees title? (Y/N)");
            System.out.println(" ");
            String answer = input.nextLine().toUpperCase();
            if (answer.equals("Y")) {
                System.out.println("Enter new title: ");
                String newTitle = input.nextLine();
                searchArray[i].setEmployeeTitle(newTitle);
                searchArray[i].updateTitle(newTitle);
            }
            if (answer.equals("N")) {
                break;
            }
        } else if (searchID.equals(arrayID) == false) {
            System.out.println("Please enter a valid ID!");
        }

    }
}

これは正常にエラー チェックを行いますが、配列を反復処理しているため、配列要素が > 0 で配列内にある場合、検証メッセージの前にエラー メッセージが表示されます。配列のすべての要素を分析し、ID がどの要素にも見つからない場合にのみエラー メッセージを生成する方法はありますか?

4

1 に答える 1

1

Javaでプログラミングする方法の本を絶対に読むべきです。以下のコードはすべて書き直す必要がありますが、エラーを理解するために残します。

public static void updateTitle(Employee searchArray[]) {
    String searchID;
    Scanner input = new Scanner(System.in);
    System.out.println("Enter Employee ID for manipulation: ");
    searchID = input.nextLine();

    Employee found = null;
    for (int i = 0; i < searchArray.length; i++) {
        String arrayID = searchArray[i].getEmployeeNumber();

        if (searchID.equals(arrayID)) {
            found = searchArray[i];
            break;
        }
    }

    if (found != null) {
        System.out.println("Employee: " + searchID + " found!");
        System.out.println("Employee " + searchID + "'s current title is: " + found.getEmployeeTitle());
        System.out.println(" ");
        System.out.println("Would you like to change this employees title? (Y/N)");
        System.out.println(" ");
        String answer = input.nextLine();
        if (answer.equalsIgnoreCase("Y")) {
            System.out.println("Enter new title: ");
            String newTitle = input.nextLine();
            found.setEmployeeTitle(newTitle);
            found.updateTitle(newTitle);
        }
    } else {
        System.out.println("Please enter a valid ID!");
    }
}
于 2013-09-17T19:24:14.383 に答える