ホーム | ブログ | C++辞典 | サイトマップ | FAQ | 掲示板 | リンク集
メイン・メニュー
プログラミング
その他

条件と真理値

前回は if 文を使った場合分けについて解説しました。if 文などでは、条件を指定して、その条件に合うかどうかで場合分けを行います。ここで、また新しい言葉を覚えて欲しいのですが、条件に合う場合を「真(しん)」、条件に合わない場合を「偽(ぎ)」といいます。「真」と「偽」の二種類で表現されるような値のことを「真理値」といいます。C++では、「真理値」を表すための専用の「型」として、bool というのがあります。bool 型は、true (「真」)または false (「偽」)の二種類の値しかとることができません。if 文などの条件には、この bool 型が使われます。

前回登場したサンプルコードでは、x < 0 のような不等号を使った条件が書かれていました。この不等号も「演算子」の一種で、x < 0 という演算の結果は、x がマイナスであれば true に、0 またはプラスであれば false になるわけです。ところで、true や false というのは、「真理値」であると同時に「整数値」でもあります。true は、整数値が必要なところではいつでも 1 になります。また、false は 0 になります。例えば、true + 123 という式があるとすれば、その結果は、1 + 123 ですので、124 になるわけです。

また、整数をはじめとした数値は、真理値が必要なところではいつでも真理値に変換されます。そのときの変換は、元の数値が 0 でなければ true に、0 ならば false に変換されます。例えば、123 という整数値は true に、0 ならば false に変換されるわけです。

さて、以上を踏まえた上で、以下では条件の式でよく使う演算子について、もう少し詳しく解説したいと思います。まずは、二つの値が等しいかどうか、あるいは等しくないかどうかを判定する等価演算子です。

演算子 意味
== 両辺が等しければ true、そうでなければ false
!= 両辺 が等しくなければ true、そうでなければ false

== が、数学でいうところの = に相当し、!= が ≠ に相当すると考えてください。

次に、大小関係を比較するための不等号を意味する関係演算子です。

演算子 意味
< 左辺が右辺より小さければ true、そうでなければ false
> 左辺が右辺より大きければ true、そうでなければ false
<= 左辺が右辺と等しいか、小さければ true、そうでなければ false
>= 左辺が右辺と等しいか、大きければ true、そうでなければ false

< と > に関しては、数学の記号と同じ意味だと考えてください。そして、<= は ≦ の、>= は ≧ の意味だと考えてください。これは見たままなのですぐ覚えられるかと思います。

次はちょっとややこしいのですが、条件を二つ以上組み合わせる場合に使う演算子を解説します。そうした演算子は、「条件A と条件B の両方が真ならば」とか、「条件A または条件B のどちらかが真ならば」とか、「条件A が真で、条件B が偽ならば」といった複雑な条件を書くために必要になってきます。

演算子 意味
&& 両辺とも true ならば true、そうでなければ false
|| 両辺のどちらかが true ならば true、そうでなければ false

ちょっと上の表の説明だけでは分かりませんね。要するにこういうことです。1 <= x && x <= 5 という条件があれば、&& の左辺である 1 <= x が true で、なおかつ右辺の x <= 5 も true のときに、条件全体が true になるということです。もっと簡単にいうと、x が 1 以上 5 以下であれば true になるということです。|| についても同様で、x <= 1 || 5 <= x という条件があれば、x が 1 以下か 5 以上であれば true になるということです。

最後に、もう一つだけ演算子を紹介して今回は終わりにします。

演算子 意味
! !x としたときに、x が true であれば false、x が false であれば true

! というのは否定の意味です。! の直後に書いた条件の true と false が反対になります。! の後に書く条件が式の場合は括弧 () でくくってください。! の場合に限らず、式は括弧 () でくくることができます。数学では、括弧が二重になると、外側には {} を使ったりしますが、C++では、括弧が何重になったとしても、普通の丸括弧 () を使います。

今回解説した内容を一度に理解するのは大変ですが、前回のサンプルプログラムを適当に修正するなどして遊んでみてください。頭の中で想像するよりずっと簡単なことが分かると思います。複雑な条件が書けるようになれば、次回に解説する「繰返し」と組み合わせて、簡単なプログラムなら大体書けるようになることでしょう。

プリンタ出力用画面
前のページ
if文による場合分け
コンテンツのトップ 次のページ
for文による繰返し


 ホーム | プロフィール | メール | ログイン | 管理
Copyright © 2005-2009 by TAKAGI Nobuhisa