对于每个无限循环

For Each Infinite Loop

我是一名初级程序员,我创建了一个方法,它接受用户输入的字符串,检查它是整数还是字符,转换它,然后将它传递到方法的下一部分,即a for each 循环检查存储在链表中的 Person 对象实例的 id 值。

但是它正在创建一个无限循环,我不知道如何打破它以便它只输出一次。非常感谢任何帮助。

我只包含了我认为有问题的方法,如果您需要程序的更多部分,请告诉我,我会添加。

public void theSiv() {
        System.out.println("Please enter client Id:");
        String s = In.nextLine();
        boolean isValidInteger = false;
        char choice = 'p';
        boolean exists = false;
        int searchid = 0;
        try
        {
            int i = Integer.parseInt(s);
            isValidInteger = true;
            searchid = i;
        }
        catch (NumberFormatException ex)
        {
            choice = s.charAt(0);
        }

        while (choice !='x'){
            for (Person b:clients)
                if  (b.getId() == searchid){
                    exists = true;
                    System.out.println("found client");}

            if(exists == false)
                System.out.println("  No such client");
        }

    }

无限循环是您的 while (choice !='x'){,因为在您的 while 循环体中没有任何内容修改 choice。如果我理解你的代码,那么你可以改成 if like

if (choice != 'x') {