-1

所以我想知道布尔值如何在以下代码中的条件语句中起作用

bool flag = true;

do { 
    d += data[i]; 
    if (d > 15 || i == 3) { 
          flag = false; 
    } 
    i = i + 1; 
} while (flag); 

什么时候退出dowhile循环?

4

4 回答 4

3

如果其中一个d > 15i == 3评估为真,i则将递增并且循环将停止。

换句话说,flag仅在每次迭代结束时检查,即使它可能设置为false在一次迭代的中间。

于 2013-04-13T09:48:00.523 回答
1

它会在什么时候退出,(d > 15 || i == 3)这意味着(d > 15 or i == 3)

i在每次迭代时递增,因此如果i在程序开始时 < 3,我们确信它会在某个点到达i == 3并中断循环。

Ond我们不能说太多,因为我们不知道它的初始值,也不知道它在循环中的行为,因为我们对data.

于 2013-04-13T09:47:58.983 回答
0

取决于你的值dand i...
一旦d大于 15 或i等于 3,flag就会变成false并且循环将结束。

不过,这可能不会发生在同一次迭代中。例如,如果i在循环中递增到 3,它将首先在以下循环中进行评估,并且flag可能设置为false.

于 2013-04-13T09:48:53.493 回答
0

当数组 Data[] 中的前 3 个值的 SUM 大于“15”时,它将中断 while,如果不大于 15,则中断前 3 个值的 SUM。

[这取决于“i”的初始值]

于 2013-04-13T09:52:50.590 回答