gt05063
@gt05063

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【java】教えてください。"exit"を入力したら全員の情報が出力されるようにする。

javaの問題ですが、どうしても分かりません。
どのようにすれば求めてる結果が出るか教えていただけないでしょうか?
どうぞよろしくお願いいたします。

問題:

会員情報を持っているMemberクラスとmain()メソッドを持つPhoneManagerクラスを作成してください。会員情報(Member)は下記の通りです。
(1)名前(name),電話番号(tel)フィールドは外部から直接アクセスすることができない。
(2)Constructorとフィールドに接近(getter)し、設定(setter)することができるメソッドがある。
(3)実行に必要なメソッドを追加することはできる。

コードを実行すると下記の画面通りになる。(サンプル)
(1)入力する人数を決める(3名):入力した数字と同じぐらい情報を入力することができる。
(2)3人の名前(String)と電話番号(String)を入力する
(3)名前を検索:"あい"があれば電話番号を出力、なければメッセージを出力
(4)"exit"を入力したら全員の情報が出力されプログラムは終了

(サンプル)

人数>>3
名前と電話番号(番号は連続入力)>> あい 090-1111-1111
名前と電話番号(番号は連続入力)>> まみ 090-2222-2222
名前と電話番号(番号は連続入力)>> とも 090-3333-3333
保存しました。

名前を検索(終了:exit)>>あい
あいの番号は090-1111-1111です。
名前を検索(終了:exit)>>ゆき
ゆきはありません。
名前を検索(終了:exit)>>exit
名前:あい、電話番号:090-1111-1111
名前:まみ、電話番号:090-2222-2222
名前:とも、電話番号:090-3333-3333


分からないところ

「(4)"exit"を入力したら全員の情報が出力されプログラムは終了」と書いてありますが、
どのようにすればサンプルの最後の3行のように出力されるか分かりません。

PhoneManager.java

import java.util.Scanner;

class Phone {
    private String name, tel;

    public Phone(String name, String tel) {
        this.name = name;
        this.tel = tel;
    }

    public String getName() {
        return name;
    }

    public String getTel() {
        return tel;
    }
}

public class PhoneManager {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.print("人数 >> ");
        int Persons = sc.nextInt();

        Phone[] Array = new Phone[Persons];

        for(int i = 0; i < Persons; i++) {
            System.out.print("名前と電話番号(番号は連続入力)>> ");
            Array[i] = new Phone(sc.next(), sc.next());
        }

        System.out.println("保存しました。");

        label : while(true) {
            System.out.print("名前を検索(終了:exit)>> ");
            String serchName = sc.next();

            for(int i = 0; i < Persons; i++) {
                if(serchName.equals("exit")) {
                    break label;
                }
                else if(serchName.equals(Array[i].getName())) {
                    System.out.println(Array[i].getName() + "の番号は " + Array[i].getTel() + "です。");
                }
                else if(!serchName.equals(Array[i].getName()) && i == (Persons-1)) {
                    System.out.println(serchName + "はありません。");
                }
            }
        }
        System.out.println("exit");//ここですが、exitでは、入力した3人の情報が全てしゅつされるようにする方法が分かりません。
    }
}
0

2Answer

普通に出力すればよいだけだと思います。

        for(int j = 0; j < Persons; j++) {
            System.out.println("名前:" + Array[j].getName() + "、電話番号:" + Array[j].getTel());
        }

0Like

Comments

@yoshi389111さん 回答ありがとうございます。

System.out.println("名前:" + Array[i].getName() + "、電話番号:" + Array[i].getTel());

↑この部分はできてたけど、

for(int i = 0; i < Persons; i++)

↑この部分ができてませんでした。

0Like

Your answer might help someone💌