-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 > 15またはのいずれかi == 3が true と評価された場合、iがインクリメントされ、ループが停止します。

つまり、反復の途中で にflag設定されている場合でも、各反復の最後にのみチェックされます。false

于 2013-04-13T09:48:00.523 に答える
1

(d > 15 || i == 3)を意味するときに終了し(d > 15 or i == 3)ます。

iは反復ごとにインクリメントされるためi、プログラムの開始時に < 3 である場合、特定の時点でi == 3ループに到達してブレークすることが確実です。

については何も知らないため、初期値もループ内の動作も知らないため、あまりわかりdませんdata

于 2013-04-13T09:47:58.983 に答える
0

配列 Data[] の最初の 3 つの値の合計が「15」より大きい場合は中断し、最初の 3 つの値の合計が 15 より大きくない場合は中断します。

[「i」の初期値による]

于 2013-04-13T09:52:50.590 に答える
0

dandの値によって異なりますi...が 15 より大きいか3 に等しくなると
すぐに、 になり、ループが終了します。diflagfalse

ただし、これは同じ反復では発生しない可能性があります。たとえばi、ループで が 3 にインクリメントされた場合、次のループで最初に評価され、flagに設定される可能性がありますfalse

于 2013-04-13T09:48:53.493 に答える