1

これまでのプログラミングの (短い) キャリア (単にインターンシップに取り組んでいる学生) を通して、IF ステートメントに関しては、2 つの異なる方法があることに気付きました。

fooブール値として取る場合:

if(foo)
{
    //do stuff
}

これは、IF ステートメントを処理するときの私の好みの方法です。 false を探している場合は、次を使用します。

if(!foo)
{
    //do more stuff
}

しかし、これを見ると眉をひそめる人がいて、私が悪い癖に引っかかっているのではないかと思います。しかし、知りたかったのですが、この方法と「典型的な」方法に違いはありますか?

if(foo == true)
{
    //do a bit more stuff
}

新しいプログラマーによくある罠に陥っていませんか? それとも違いはありませんか(少なくとも顕著なもの)

4

4 に答える 4

2

== true や == false とは決して書きません。私の意見では、それはif文のポイントに反します。

if は基本的に: ブール式が true の場合、何かを行います。ブール値はそれ自体がブール式なので、なぜそれをラップするのでしょうか?

したがって、私の意見では、 == true を使用しているのは悪い習慣です。彼らは言語がどのように機能するかについて無知を示しているからです。

if (Foo) および if (!Foo) を記述するこれらの「許可された」方法を考えてみてください。

if (Foo == true) //If Foo is the same as true
if (Foo != true //If Foo is not the same as true
if (Foo != false) //if Foo is not the same as false
if (Foo == false) //If Foo is the same as false
if (Foo) //If Foo
if (!Foo) //If not Foo

== と != をブール値で使用すると、実際にはプログラミングとコードの読み取りの両方で間違いを犯す新しい方法が導入されます。

Boolean と !Boolean は読み違えにくいです。

于 2013-02-20T09:37:57.603 に答える
1

ほとんどの言語では、あなたのやり方が推奨されていると思います

if(foo)
{
    //do stuff
}

たとえば、Python PEP8は言う

== を使用してブール値を True または False と比較しないでください。

Yes:   if greeting:
No:    if greeting == True:
Worse: if greeting is True:

Code Conventions for the Java Programming Language 7 の別の例

if-else クラスのステートメントは、次の形式にする必要があります。

if (condition) {
    statements;
}

ちょっとしたヒント: 条件チェックについて言えば、数週間前に聞いた良いヒントを次に示します。たとえば、C のように比較すると

if(variable == "value") ....

誤って書いた場合、コンパイラはエラーをスローしないという問題が発生する可能性があるため、if (variable = "value") ... の規則を使用する人もいます。if ("value" == variable) ...===

于 2013-02-20T09:37:08.777 に答える
0

チェックif(foo == true)手段

foo が true と等しいかどうかを確認する true が true と等しい

私によると、これは単なるオーバーヘッドです。

于 2013-02-20T09:48:24.460 に答える
0

ほとんどのコーディング規約では、ブール チェックは次のようにテストされます。

if(someBoolean) {

また

if(!someBoolean) {

これにより、読みやすさが向上します。不明な場合は、いくつかのコード規則を確認してください。Java 規則は次のとおりです: http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html

于 2013-02-20T09:31:50.377 に答える