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