Прежде всего, я новичок в инструменте отладчика и все еще считаю себя новичком в программировании. Мой первый день использования отладчика и попыток разобраться. В любом случае, у меня есть программа, которая работает, как и ожидалось, но, используя отладчик для пошагового прохождения, я заметил, что одно из моих значений не меняется, когда оно должно, но программа продолжает работать правильно, как если бы это значениеменять. Поэтому я перезапустил программу и создал часы для той же переменной. Поскольку я пошагово прошёл через него, переменная, которую я наблюдаю, изменяется, но не значение той же переменной, которую отладчик показывает автоматически.
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, пока я писал этот вопрос. Я сделал несколько повторных тестов, и теперь они оба изменяются на ложные одновременно, когда это должно быть. Теперь все работает так, как и предполагалось, но я потратил столько времени на написание этого вопроса, я немного солен, и теперь мой вопрос - почему это вообще произошло.
Мой отладчик,Я отредактировал, чтобы показать, как это было, прежде чем я потратил час на создание этого вопроса