繁体   English   中英

做循环在Java中无法正常运行

[英]Do-While loop not operating properly in Java

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

这很简单。 break; 退出循环。 去掉它。

编辑:另外,在循环条件下,您可以使用[index - 1] 现在,如果您输入的内容为空(用户按Enter键),索引将不会增加,并且将指向上一项。 只需将其更改为[index]即可。

问题是中断和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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM