Cはif
ステートメントを持ち、そのファミリの一部はelse if
とelse
ステートメントです。 else
は、それ自身が成功した値がないかどうかをチェックし、成功した場合は、そのコードを実行します。Cでのelseのcatch-all
値のすべてがどれもそれらののではなく、成功したかどうかを確認するelse
の反対のようなものがあります場合、私は思っていました。
だが、私はこのコードを持っているとしましょう:
if (someBool)
{
someBit &= 3;
someFunction();
}
else if (someOtherBool)
{
someBit |= 3;
someFunction();
}
else if (anotherBool)
{
someBit ^= 3;
someFunction();
}
else
{
someOtherFunction();
}
確かに、私はこれを短縮することができます:
goto
(ジー、私はそれをしないだろう、なぜかしら)- 書き込み
if (someBool || someOtherBool || anotherBool)
(乱雑で遠隔移植はできません)。
私はこのような何かを書くためにはるかに容易になるだろう考え出し:
if (someBool)
someBit &= 3;
else if (someOtherBool)
someBit |= 3;
else if (anotherBool)
someBit ^= 3;
all // if all values succeed, run someFunction
someFunction();
else
someOtherFunction();
んCは、この能力を持っていますか?
などのような**ありません**それはしていません。 – abelenky
これは動作しません。なぜなら、1つの条件が真であれば、それは残りをチェックしないからです。これは、潜在的にパフォーマンスを低下させる可能性のあるすべての条件をチェックすることを余儀なくさせる必要があります。 Pythonのような上位レベルの言語は、この目的のために 'all'関数を持っています(あなたの提案とは異なっていますが)。 @ abelenky。 – Carcigenicate
それを答えにして、私はあなたにアップヴォートすることができます:) –