Переменная в отладчике не изменяется, когда она должна, но создала «часы» с тем же значением, и это изменится - PullRequest
0 голосов
/ 12 октября 2019

Прежде всего, я новичок в инструменте отладчика и все еще считаю себя новичком в программировании. Мой первый день использования отладчика и попыток разобраться. В любом случае, у меня есть программа, которая работает, как и ожидалось, но, используя отладчик для пошагового прохождения, я заметил, что одно из моих значений не меняется, когда оно должно, но программа продолжает работать правильно, как если бы это значениеменять. Поэтому я перезапустил программу и создал часы для той же переменной. Поскольку я пошагово прошёл через него, переменная, которую я наблюдаю, изменяется, но не значение той же переменной, которую отладчик показывает автоматически.

        while (tempNumber < number)
        {
            prime = true;
            for (int i = 2; i < tempNumber; i++)
            {
                remainder = (tempNumber % i);
                if (remainder == 0)
                    prime = false;
            }
            if (prime == true)
                System.out.println(tempNumber);
            tempNumber++;
        }

Итак, сформируйте начало, tempNumber = 4,число = 10. В части, где он вычисляет остаток, «tempNumber% i» равен «4% 2», что равно 0. Отладчик выделяет часть

prime = false;

и, как только перейдете на следующую строку или продолжите работу в отладчике, переменная prime в наблюдениях изменится на false , но prime переменная, которую отладчик показывает автоматически, остается как true

РЕДАКТИРОВАТЬ: Хорошо, поэтому я не уверен, что радует, но я пошел netbeans на снимок экрана отладчика и, возможно, код также, нопростое значение в отладчике как-то изменилось на false, пока я писал этот вопрос. Я сделал несколько повторных тестов, и теперь они оба изменяются на ложные одновременно, когда это должно быть. Теперь все работает так, как и предполагалось, но я потратил столько времени на написание этого вопроса, я немного солен, и теперь мой вопрос - почему это вообще произошло.

Мой отладчик,Я отредактировал, чтобы показать, как это было, прежде чем я потратил час на создание этого вопроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...