2021年11月21日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説! total 777 count

論理型: 好きと嫌いだけで普通がないの

Written By: 川俣 晶連絡先

この章のテーマ §

 論理型(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!");

  1. OK!
  2. NG!
  3. 何も出ない
  4. !演算子は論理型にしか使えないからエラーになる
  5. !演算子は値の手前に書くから、OK! NG!はエラーになる

[[解答]]

単行本情報