无限循环使用继续

CSt*_*bra 3 c++ for-loop continue infinite-loop

我正在编写一个代码,它将遍历直方图中的每个bin,并检查是否存在任何非零bin.如果有,它会抛出一条错误消息.我的问题是,我希望它跳过一个bin,因为这个bin不应该是空的,而是检查所有其他的bin.

唯一的问题是创造一个无限循环.这是我的代码

Int_t y;

for (int i = 0; i <= 100; i++) {
    y = hist - > GetBinContent(i)

    if (i = 1) continue;
    else if (y != 0) {
        std: cout << * * * * * ERROR * * * * * << std: endl;
        break;
    }

}
Run Code Online (Sandbox Code Playgroud)

它正在发生的事情是评估它i = 0,跳过i = 1,然后命中,i = 2并且不断地一遍又一遍地评估它.如果我拿出"if(i = 1)继续;" 然后它的工作原理.

有任何想法吗?

Ani*_*bhi 7

试试这个

if (i==1) continue;
Run Code Online (Sandbox Code Playgroud)

i=1意味着你分配1i.=意味着分配和==平均比较.

在您的代码中,值i始终1 与您使用的一样i=1