如何解决这个无限循环?

时间:2012-02-29 00:51:04

标签: java loops infinite

我输入系统打印输出以查看问题所在,而2和7是在无限循环中不断重复的两个。这部分代码假设搜索列表并找到用户放入的匹配项,但每次使用搜索时,GUI都会冻结或陷入无限循环。谁能帮我解决这个问题?

这是我的代码:

     if (whichOne.equals("Search"))
    {
        System.out.println("1");
        String[] results = new String [5];
        int count = 1;
        list.moveCursorToRear();
        int last = list.cursor;
        list.resetCursor();
        while(list.hasNext() || list.cursor == last)
        {
            int found = list.search(searchField.getText());
            String result = list.spaces[found].getData();
            System.out.println("2");
            if(current != found)
            {
                list.stepCursorBack();
                System.out.println("3");
                if(list.cursor == list.head)
                {
                    results[count] = result;
                    System.out.println(results[count]);
                    list.spaces[current].setLink(list.spaces[found].getLink());
                    count++;
                    System.out.println("4");
                }
                else
                {
                    results[count] = result;
                    System.out.println(results[count]);
                    list.spaces[current].setLink(list.spaces[list.cursor].getLink());
                    count++;
                    System.out.println("5");
                }
                list.getNext();
                System.out.println("6");
            }
            else
            {
                //break;
                //System.exit(0);
               list.hasNext();
               System.out.println("7");
            }

        }

1 个答案:

答案 0 :(得分:1)

    else
    {
        //break;
        //System.exit(0);
       list.hasNext();
       System.out.println("7");
    }

我怀疑你想要list.getNext(),而不是hasNext()

但是,如果没有更多代码 - 尤其是有关此list的更多信息,可能无法给出明确的答案。