次のコードの条件ステートメントでブール値がどのように機能するかを知りたい
bool flag = true;
do {
d += data[i];
if (d > 15 || i == 3) {
flag = false;
}
i = i + 1;
} while (flag);
いつ dowhile ループを終了しますか?
d > 15またはのいずれかi == 3が true と評価された場合、iがインクリメントされ、ループが停止します。
つまり、反復の途中で にflag設定されている場合でも、各反復の最後にのみチェックされます。false
(d > 15 || i == 3)を意味するときに終了し(d > 15 or i == 3)ます。
iは反復ごとにインクリメントされるためi、プログラムの開始時に < 3 である場合、特定の時点でi == 3ループに到達してブレークすることが確実です。
については何も知らないため、初期値もループ内の動作も知らないため、あまりわかりdませんdata。
配列 Data[] の最初の 3 つの値の合計が「15」より大きい場合は中断し、最初の 3 つの値の合計が 15 より大きくない場合は中断します。
[「i」の初期値による]
dandの値によって異なりますi...が 15 より大きいか3 に等しくなると
すぐに、 になり、ループが終了します。diflagfalse
ただし、これは同じ反復では発生しない可能性があります。たとえばi、ループで が 3 にインクリメントされた場合、次のループで最初に評価され、flagに設定される可能性がありますfalse。