for循环中的变量在调试过程中发生奇怪的变化

问题描述 投票:0回答:1

我正在编写一个使用c ++利用fltk的程序。我已经在for语句中指定了条件。但是,在调试之后,发现j值未初始化,因此变为5。在for循环之外,它已初始化为1。但是,仍然执行i = 2和j = 5而不通过for循环。我认为for循环中的j不变,这是什么问题?

int i = 1;
int j = 1;

for (i = 1; i <= 4; i++)
{
    for(j=1; j<=4; j+=1)        // i added BP in here. 
    {
        rose.push_back(new Rose{ Point{150*i, 150*j}, i, j, 60 });
        rose[rose.size() - 1].set_color(Color{ i * 4 + j });
        rose[rose.size() - 1].draw_lines();
        win.attach(rose[rose.size() - 1]);
    }
}

首先遇到BP时,i = 1,j = 1。这是第二次遇到BP时的结果。enter image description here

c++ for-loop debugging int fltk
1个回答
0
投票

这里没事。

j在内部循环结束之后短暂地是5(也就是说,它的终止条件!它是由最后一个j+=1引起的),它将一直保持这种状态,直到引入下一个j = 1为止。同一循环的化身。

由于您在循环开始的行上放置了一个断点,所以我想您只是看到了。

© www.soinside.com 2019 - 2024. All rights reserved.