首先,我是调试器工具的新手,但仍然认为自己是编程的新手。使用调试器并尝试找出问题的第一天。无论如何,我有一个可以按预期工作的程序,但是在使用调试器逐步进行时,我注意到我的一个值在预期的情况下不会发生变化,但是程序仍然可以正确运行,就像该值确实可以更改。因此,我重新启动了程序,并为相同的变量创建了一个监视。当我单步执行它时,我正在监视的变量会发生变化,但调试器会自动显示该变量的值却没有变化。
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,number =10。在计算余数的部分中,“ tempNumber%i”为“ 4%2”,即0。调试器突出显示该部分
prime = false;
,只要进入下一行或在调试器中继续,手表中的 prime 变量就会更改为 false ,但 prime 调试器自动显示的变量,保持为 true
编辑:好的,所以我不确定会发生什么,但是我去了netbeans截屏调试器,也许还有代码,但是当我写出这个问题时,调试器中的质数以某种方式变为false。我进行了一些重新测试,现在,它们都在应有的同时更改为false。一切都按现在的预期进行,但是我浪费了很多时间写出这个问题,我有点咸,现在的问题是为什么这首先发生了。
My debugger, I edited to show what it was like before I spent an hour creating this question