Do-While循环在Java中无法正常运行

时间:2013-11-14 19:30:30

标签: java arrays do-while

所以这应该继续循环,直到用户点击“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);

2 个答案:

答案 0 :(得分:5)

这很简单。 break;退出循环。删除它。

编辑:此外,在循环条件下,您使用[index - 1]。现在,如果您的输入为空(用户按下Enter键),索引将不会递增,它将指向上一个项目。将其更改为[index],它就能正常工作。

答案 1 :(得分: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);