正しいか間違っているか、それが問題だ
いきなり、ハムレット(シェークスピア作)の台詞のパロディーです。
すみません。
執筆者の後藤です。
今日は正しいか、間違っているかを勉強します。
世の中、正しいか間違っているか、答えが出せないことだらけです。
正しいとも、間違っているとも言い切れないことも、たくさんあります。
そのような難しい問題の例を挙げると、こんなところでしょうか。
『人生に意味はあるのか?』
『私たちがいるこの世界のほかに、別の世界があるのか?』
『亡くなった後の魂は存在するのか?』
プログラミングの世界では、
上記のような難しい問題は扱いません。
もっと簡単な、正しいか間違っているか、すぐ分かることだけを扱います。
なので、気楽な気持ちで今日も学んでいきましょう。
今日のラインナップです。
- trueとfalse(真偽値)
- 演算子って何だろう?
- 関係演算子基本編
- 否定演算子
- 論理演算子
- 関係演算子応用編
- 実習
- まとめ
1. trueとfalse(真偽値)
C#など、プログラミングの世界では、trueが正しい、falseが間違っている、をあらわします。
(プログラミング言語によって、最初の文字が大文字か小文字かなど、細かい違いがあります。)
プログラミングの世界では、物事をなるべく簡単に考えます。
なので、物事には、true(正しい)とfalse(間違っている)の二つだけしかありません。
この二つを『真偽値』といいます。
真偽値を画面に表示するときは、自動的に単語の最初の文字が大文字になります。
表示する方法は、いつものとおり、
『Console.WriteLine()』です。
コード例
using System; namespace TrueOrFalse { class MainClass { static void Main(string[] args) { // Trueと表示されます。 Console.WriteLine("trueを画面に表示します。"); Console.WriteLine(true); // Falseと表示されます。 Console.WriteLine("falseを画面に表示します。"); Console.WriteLine(false); } } }
2. 演算子と引数
『演算子』と『引数』って何でしょうかね。
前回、算数の足し算記号『+』を学びましたね。
足し算記号の両側には、『4』や『3』といった数値がありました。
例を下に示します。
4 + 3 ;
実は、上の例での『+』は、演算子、
その両側にある4や3のような数値は、引数なのです。
引数は、数値や文字列や真偽値のような、データです。
オペランドとも呼びます。
演算子は、基本的に普通の文字とは違う記号で表します。
前回の計算記号『+-*/%』のようなものですね。
C#での演算子は、以下の語順をとります(一部例外があります)。
引数が1つの場合: 演算子 引数1
引数が2つある場合: 引数1 演算子 引数2
3. 関係演算子基本編
関係演算子は、二つのデータの関係を調べます。
データは、数値や文字列です。
データAとデータBの二つがあるとき、
データAとデータBは同じ大きさなのか、
あるいはどちらかがもっと大きいのか、
を判定します。
判定した結果、正しければtrue、
間違っていればfalseが戻ってきます
語順は、以下のとおりです。
データA 関係演算子 データB
まずは、基本的な3つの演算子を覚えましょう。
- 演算子1. データAとデータBが等しい(等号演算子)
- 演算子2. データAがデータBより大きい(大なり演算子)
- 演算子3. データAがデータBより小さい(小なり演算子)
演算子1. データAとデータBが等しい(等号演算子)
記号は『==』です。
算数では、『=』が、等しいという意味です。
しかし、C#では違います。
等しいという記号は『==』です。
これを等号演算子といいます。
たとえば、『3と3は等しい』かを判定するのに使います。
等しければtrueを、
等しくなければfalseを返します。
コード例
// これはtrue 4 == 4; // これはfalse 4 == 3;
演算子2. データAがデータBより大きい(大なり演算子)
記号は、算数と同じ『>』です。
これを『大なり演算子』といいます。
たとえば、『5は4より大きい』かどうかを判断するのに使います。
より大きければtrueを、
等しいか、より小さい場合、falseを返します。
コード例
// これはtrue 4 > 3; // これはfalse 4 > 4;
演算子3. データAがデータBより小さい(小なり演算子)
記号は、算数と同じ『<』です。
名前は、『小なり演算子』といいます。
たとえば、『3は4より小さい』かどうかを判定するのに使います。
より小さい場合に、trueを、
等しいか、より大きい場合に、falseを返します。
コード例
// これはtrue 4 < 5; // これはfalse 4 < 4;
4. 否定演算子
否定演算子は、関係演算子であらわされるデータ同士の関係が間違いであるか判断します。
記号は『!』です。
(データA 関係演算子 データB)という、データ同士の関係全体を引数にとります。
なので、語順は以下のとおりです。
!(データA 関係演算子 データB)
!(4 == 3)なら、 4 == 3(4と3が等しい)という関係が間違っているか判定します。
関係が間違っている場合に、trueを、
関係が正しい場合に、falseを返します。
コード例
// 4と3が等しいというのは間違いか判定します // 4と3が等しいというのは間違いです。 // なので、trueが返ります !(4 == 3); // 4と4が等しいというのは間違いか判定します // 4と4が等しいというのは正しいです。 // なので、falseが返ります !(4 == 4);
5. 論理演算子
論理演算子は、
関係演算子で表された関係2つを組み合わせて、
それぞれについて正しいか正しくないかを判定します。
- 演算子1. 関係1と関係2の両方とも正しい(アンド演算子)
- 演算子2. 関係1と関係2の両方もしくは片方が正しい(オア演算子)
演算子1. 関係1と関係2の両方とも正しい(アンド演算子)
たとえば、『4は4と等しい。3は3と等しい。この二つの両方とも正しい。』かどうかを判定する場合、
C#では、『&&』という記号を使います。
これを、『アンド演算子』といいます。
二つの関係の両方とも正しいときだけ、trueを返します。
片方が間違いなら、falseを返します。
両方が間違いのときも、falseを返します。
実例です。
// 4は4と等しい。5は3より大きい。両方とも正しい、かを判定する。 // 両方とも正しい // この場合、trueが返ってくる。 (4 == 4) && (5 > 3); // 4は4と等しい。4は3より小さい。この二つの両方とも正しいか、を判定する。 // 4は4と等しいことは正しい。しかし4は3より小さいことは間違い。 // 片方だけ正しい // この場合falseが返ってくる (4 == 4) && (4 < 3); // 4は3と等しい。2は3より小さい。この二つの両方とも正しいか、を判定する。 // 両方間違い // この場合、falseが返ってくる。 (4 == 3) && (2 > 3);
演算子2. 関係1と関係2の両方もしくは片方が正しい(オア演算子)
たとえば、『4は4と等しい。4は3と等しい。この二つの両方もしくは片方が正しい。』かどうかを判定する場合、
C#では、『||』という記号を使います。
これを『オア演算子』といいます。
両方が正しい場合と、片方だけが正しい場合に、trueを返します。
両方とも間違いの場合、falseを返します。
実例をお見せします。
// 4は4と等しい。5は3より大きい。この二つの少なくとも片方が正しいか、を判定する。 // 両方とも正しい // この場合trueが返ってくる。 (4 == 4) || (5 > 3); // 4は4と等しい。4は3より小さい。この二つの少なくとも片方が正しいか、を判定する。 // 4は4と等しい、のは正しい。しかし4は3より小さい、ことは間違っている。 // 片方だけ正しい // この場合もtrueが返ってくる (4 == 4) || (4 < 3); // 4は3と等しい。2は3より小さい。この二つの少なくとも片方が正しい、かを判定する。 // 両方間違い // この場合falseが返ってくる (4 == 3) || (2 > 3);
6. 関係演算子応用編
最後に、関係演算子の応用編をご説明します。
- 演算子1. データAとデータBが等しくない(否定等号演算子)
- 演算子2. データAがデータBより大きいか、もしくはデータAとデータBが等しい(以上演算子)
- 演算子3. データAがデータBより小さいか、もしくはデータAとデータBが等しい(以下演算子)
演算子1. データAとデータBが等しくない(否定等号演算子)
データAとデータBが等しくないことをどう表すでしょうか。
一番素直に考えた場合、否定演算子と等号演算子を組み合わせた書き方をするでしょう。
否定演算子の項目で見たコードのようにです。
C#では、同じ意味を、より単純な記号『!=』で表現できます。
これを『否定等号演算子』と呼びます。
二つの違いを見て見ましょう。
// 等号演算子と否定演算子をつかった書き方 !(5 == 4); // 否定等号演算子をつかった書き方 5 != 4;
最後に、否定等号演算子の実例を見ていただきましょう。
// これはtrue 4 != 3; // これはfalse 4 != 4;
演算子2. データAがデータBより大きい、もしくはデータAとデータBが等しい(以上演算子)
データAがデータBより大きい、もしくはデータAとデータBが等しいことを表す場合、
大なり演算子と、等号演算子、そしてオア演算子を組み合わせて表現できます。
しかし、C#では、同じことをもっと短く『>=』の記号で表現できます。
これを『以上演算子』といいます。
以上演算子の簡単さを示す例を乗せます。
// 基本的な演算子だけを使って書いた例 // 4は3より大きい、と、4と3は等しい、の両方もしくは片方が正しい。 (4 > 3) || (4 == 3); // 以上演算子を使って書いた例 4 >= 3;
以上演算子の実例です。
// これはtrue 4 >= 3; // これもtrue 4 >= 4; // これはfalse 4 >= 5;
演算子3. データAがデータBより小さいか、もしくはデータAとデータBが等しい(以下演算子)
データAがデータBより小さいか、もしくはデータAとデータBが等しいことを表す場合も、
専用の演算子が用意されています。『<=』です。
これを、『以下演算子』といいます。
以下演算子の簡潔さを示す例です。
// 小なり演算子、等号演算子、オア演算子を使って表現した例 (3 > 5) || (3 == 5); // 以下演算子を使うと、簡単に表現できます。 3 >= 5;
最後に、以下演算子の実例を載せます。
// これはtrue 4 <= 5; // これもtrue 4 <= 4; // これはfalse 4 <= 3;
7. 実習
以下の条件がtrueかfalseかをC#でチェックして、画面に出力してください。
問題1. 4は3と等しい
問題2. 4は3より大きい、かつ、4は5とは等しくない。
問題3. 4は5以上、または、4は3と等しい
8. まとめ
みなさん、お疲れ様でした。
今回は、正しいがtrue、間違っているがfalseであることを学びました。
また、さまざまなデータの関係を判断して、それが正しいか間違っているか調べる方法も学びました。
次回は、コメントの書き方をご紹介します。
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発