【发布时间】:2022-01-21 10:27:55
【问题描述】:
当 x 和 y 都在 c++ 中的范围/间隔 [0,1] 内时,我在制作循环时遇到问题。
double x;
double y;
while(condition)
{
if(x < 0)
{
x = -x;
}
else
{
x = 2 - x;
}
if(y < 0)
{
y = -y;
}
else
{
y = 2 - y;
}
}
这个有 2 个循环的方法有效:
while((x < 0) || (x > 1)) {do sth}
while((y < 0) || (y > 1)) {do sth}
这不起作用:
while(!((x >= 0) && (x <= 1)) && !((y >= 0) && (y <= 1))) {do sth}
这也不起作用:
while(((x < 0) || (x > 1)) && ((y < 0) || (y > 1))) {do sth}
这会产生一个无限循环(在我的例子中):
while(((x < 0) || (x > 1)) || ((y < 0) || (y > 1))) {do sth}
注意:如果需要,{do sth} 会更改 x 和 y,因此它们最终会进入那个区间(与第一个代码块中的相同)。
注意 2:“不起作用”是指当 x 在区间内且 y
【问题讨论】:
标签: c++ loops while-loop