2

したがって、ユーザーが「ENTER」を押すか、配列がいっぱいになるまで、これはループし続けます。しかし、配列の最初の要素を入力すると、ループが終了します。

do 
{
    System.out.print("Enter name (or <ENTER> if done): ");
    names[index] = kb.nextLine();
    if(! (names[index].equals(""))) 
    {

        System.out.print("Enter phone number: ");
        phone[index] = kb.nextLine();

        System.out.print("Enter email address: ");
        email[index] = kb.nextLine();

        index++;
        break;
    }
} while ( ! (names[index - 1].equals("")) && index < SIZE);

修正済み

do
{
        System.out.print("Enter name (or <ENTER> if done): ");
        names[index] = kb.nextLine();

        if(! (names[index].equals("")))
            {

            System.out.print("Enter phone number: ");
            phone[index] = kb.nextLine();

            System.out.print("Enter email address: ");
            email[index] = kb.nextLine();

            }   
        index++;

    } while ( ! (names[index - 1].equals("")) && index < SIZE);
4

2 に答える 2

5

これは非常に簡単です。break;ループを終了します。それを除く。

EDIT:また、あなたが使用するループの条件で[index - 1]. ここで、入力が空の場合 (ユーザーが Enter キーを押した場合)、インデックスはインクリメントされず、前の項目を指します。just に変更すると[index]動作します。

于 2013-11-14T19:32:50.213 に答える
0

問題は break と if ステートメントです。作業例:

do {
    System.out.print("Enter name (or <ENTER> if done): ");
    names[index] = kb.nextLine();

    if (names[index].equals(""))
        break;

    System.out.print("Enter phone number: ");
    phone[index] = kb.nextLine();

    System.out.print("Enter email address: ");
    email[index] = kb.nextLine();

    index++;

} while (index < SIZE);
于 2013-11-14T19:39:53.607 に答える