Skip to content

5章の論理否定演算子のコードについて #149

@chiepomme

Description

@chiepomme

5章 https://github.com/EzoeRyou/cpp-intro/blob/master/005-the-restaurant-at-the-end-of-the-branch.md の、論理否定の説明のところでうまく理解ができず質問させていただきたく issue を立てさせていただきました。

以下の部分で「ロケットが発射可能なときに実行される」というコメントがあるのですが、コードは「ロケットが発射可能ではないときに実行される」ように読めます。ただ、そうすると一つ前の例と is_rocket_ready_to_launch() の中以外は同じになってしまいますし、実行される内容も発射可能ではないはずなのに、発射シーケンスに入ってしまうように読めます。

int main()
{
    // ロケットが発射可能なときに実行される
    if ( !is_rocket_ready_to_launch() )
    {   // カウントダウン
        std::cout << "3...2...1...Hallelujah!\n"s ;
    }
}

本文の説明の方も、

論理否定演算子を使うと、falseのときのみ実行されてほしい条件分岐が書きやすくなる。
同じように、trueのときに実行されてほしくない条件分岐も書ける。

と2つの例が同じ条件について例示をしているように読めてしまい、この2つでどういう違いがあるのかわからず、間違いであるのか私の理解が追いついていないのかわからず困っております。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions