Как исправить этот бесконечный цикл? - PullRequest
0 голосов
/ 29 февраля 2012

Я вставил системные распечатки, чтобы увидеть, где проблема, и 2 и 7 были теми, которые продолжали повторяться в бесконечном цикле.Предполагается, что эта часть кода выполняет поиск в списке и находит совпадение, которое вводит пользователь, но каждый раз, когда я использую поиск, графический интерфейс останавливается или застревает в бесконечном цикле.Может кто-нибудь помочь мне исправить это?

Вот код, который у меня есть:

     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 Ответ

1 голос
/ 29 февраля 2012
    else
    {
        //break;
        //System.exit(0);
       list.hasNext();
       System.out.println("7");
    }

Я подозреваю, что вы хотели list.getNext() здесь, а не hasNext().

Однако, без большего количества кода - и особенно дополнительной информации об этом list, определенный ответ может быть невозможно дать.

...