次のコードの条件ステートメントでブール値がどのように機能するかを知りたい
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」の初期値による]
d
andの値によって異なりますi
...が 15 より大きいか3 に等しくなると
すぐに、 になり、ループが終了します。d
i
flag
false
ただし、これは同じ反復では発生しない可能性があります。たとえばi
、ループで が 3 にインクリメントされた場合、次のループで最初に評価され、flag
に設定される可能性がありますfalse
。