条件语句在不满足条件时执行

时间:2016-09-29 22:50:33

标签: if-statement conditional conditional-statements

我无法弄清楚条件声明中的错误位置:

xo=130, y0=160, x=180, y=210
for(row = 0; row < 480; row++){
    for(col = 0; col < 640; col++){    
         if((col>xo) && (col<(xo+x)) && (row>=yo) && (row<(yo+y))){//do something;}
    }
}

在我的特殊情况下,我希望 if语句仅在我使用左上角[xo + 1,yo]和右下角[x,y]定义的窗口时执行。但是,即使在 col 大于 xo + x 之后,语句也会执行。我也试过单个&amp; 运算符,但它没有帮助。我的条件陈述有问题吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你想要在由两个点[xo,yo]和[x,y]定义的窗口内。

设[xo,yo] = [130,160]和[x,y] = [180,210]。

你想在x坐标上走50步,在y坐标上走50步。你的代码有效地做了什么是从[xo,yo]到[xo + x,yo + y],这将转换为[130 + 180,160 + 210] = [320,370]。这超出了[x,y]定义的点。