所以我想知道布尔值如何在以下代码中的条件语句中起作用
bool flag = true;
do {
d += data[i];
if (d > 15 || i == 3) {
flag = false;
}
i = i + 1;
} while (flag);
什么时候退出dowhile循环?
如果其中一个d > 15
或i == 3
评估为真,i
则将递增并且循环将停止。
换句话说,flag
仅在每次迭代结束时检查,即使它可能设置为false
在一次迭代的中间。
它会在什么时候退出,(d > 15 || i == 3)
这意味着(d > 15 or i == 3)
。
i
在每次迭代时递增,因此如果i
在程序开始时 < 3,我们确信它会在某个点到达i == 3
并中断循环。
Ond
我们不能说太多,因为我们不知道它的初始值,也不知道它在循环中的行为,因为我们对data
.
取决于你的值d
and i
...
一旦d
大于 15 或i
等于 3,flag
就会变成false
并且循环将结束。
不过,这可能不会发生在同一次迭代中。例如,如果i
在循环中递增到 3,它将首先在以下循环中进行评估,并且flag
可能设置为false
.
当数组 Data[] 中的前 3 个值的 SUM 大于“15”时,它将中断 while,如果不大于 15,则中断前 3 个值的 SUM。
[这取决于“i”的初始值]