この章のテーマ §
論理型(bool型)についての基礎を扱います。論理値false/true、否定演算子についても説明します。
前提知識 §
Console.WriteLineメソッド, 文字列の基礎, 変数の基礎, for文, if文
解説 §
C#のbool型は真偽だけを扱うデータ型です。ですから、bool型の変数には【真】または【偽】のどちらかの値しか格納できません。bool型は真偽のみならず、2つのうちのどちらかというデータを表すためにも使用できます。
真の値はtrue, 偽の値はfalseというシンボルで表現します。
bool型の値は、そのままif文などの条件式としてそのまま使用できます。(そもそも、a > bなどの比較を行う式の値がbool型です)
bool型には、!で表す否定演算子があります。これは値の先頭に付けることで、値の内容を逆転する機能を持ちます。trueならfalseになり、falseならtrueになります。
サンプルソースには、直接falseと書いた例、if文の条件式で使った例、否定演算子!を使った例がありますので、参考にして下さい。
罠の数々 §
- C#の世界ではtrue/falseだが、.NETの世界ではTrue/Falseになる。微妙に表記が違うので注意しよう。たとえば、Console.WriteLine(true);の出力はTrueになる。
- false/true/nullの三種類の値を取る三値論理型というものもあり、C#ではbool?という型名で扱う
参考リンク §
bool (C# リファレンス)
論理否定演算子 !
サンプルソース: kw_bool §
bool suki = false;
for (int i = 3; i >= 1; i--)
{
Console.WriteLine($"残り花びら{i}枚。花びらをむしります。");
suki = !suki;
if (suki)
Console.WriteLine("好き");
else
Console.WriteLine("嫌い");
}
Console.WriteLine("残り花びらなし!");
Console.WriteLine("好き好き好き!");
実行結果 §
残り花びら3枚。花びらをむしります。
好き
残り花びら2枚。花びらをむしります。
嫌い
残り花びら1枚。花びらをむしります。
好き
残り花びらなし!
好き好き好き!
リポジトリ §
https://github.com/autumn009/CSharpPrimer2
練習問題 §
以下のプログラムの実行結果を予測してみよう。
if (!(1 > 2)) Console.WriteLine("OK!"); else Console.WriteLine("NG!");
- OK!
- NG!
- 何も出ない
- !演算子は論理型にしか使えないからエラーになる
- !演算子は値の手前に書くから、OK! NG!はエラーになる
[[解答]]