以下のforループを実行するよりエレガントな方法はありますか?ゼロをチェックしてからブレークするif文は醜いですが、私がそれを含めなければ、コードは無限ループになります。ゼロまでの右シフトのループで、ゼロを含める
for (int i = 8; i >= 0; i >>= 1) {
printf("%d", i);
if (i == 0) {
break;
}
}
理想的な出力は次のようになります
8
4
2
1
0
Iループのため、任意のループ構造は、例えば、使用することができると述べたにもかかわらずまたは
のようなループを書くことができる理由はない 'I = 8;行う { ...; i >> = 1; } while(i> 0) '? –
皆さんはどちらも問題文を読んでいます。彼は後続のゼロ・ループを実行したい。 – Joshua
@ジョシュア:私を教えてください。このUBはなぜですか? – Olaf