之前在学习for循环的时候,尚未学习到单步调试的相关知识,最近在用for循环尝试单步调试的时候,发现了我让我很困惑的地方
#include<iostream>
using namespace std;
int main()
{
int b;
for (b = 0; b < 3; b++)
cout << b << endl;
cout << "Completed";
return 0;
}
这是很简单的一段循环代码。单步调试结果如下:
可以看到此时b=2,而在执行此步时,b会+1而成为3,判断3并不小于3,因而会退出循环,来到第8步。
这里也可以看出事实就是如此,但接下来我尝试了双重for循环,结果却不是我所想的那样。代码如下:
#include<iostream>
using namespace std;
int main()
{
int a,b;
for (a = 0; a < 3; a++)
for (b = 0; b < 3; b++)
cout <<a<<" "<< b << endl;
cout << "Completed";
return 0;
}
接下来进行单步调试并监控a,b的值:
此时b=2,按照刚才的结论,b会+1然后执行第6步:
但这时候让我困惑的地方出现了,并没有退出循环,而是重新执行了无效的第8步。
诸位大佬有没有发现哪里出现了问题?