2012年3月7日水曜日

2.3 基本型

1週間以上も間をあけてしまった。
誰も見てないとはいえ、何をおいても、自分に示しがつかない。
いかんいかん。


では、前回までで、ひとまずは 型 についての基本事項については説明したので、
今回からは、ようやく具体的なプログラムっぽい話に入ります。

といっても、すぐにプログラムは書きません。
プログラムを書くための準備体操です。


あ、一応補足。(またかよ!)

なぜ、すぐにプログラムの話をしないで説明をダラダラしてるか、というのは
最初のほうで説明しましたが、それのさらに付け足しです。
(もういいって?ゴメンネ!)

プログラマが、非プログラマにスクリプトの説明をするときに、一番苦労する点。
それは、文法とか数学とかではなく、用語です。

どんな内容であれ、まずもって口頭で説明するときに、「型」だの「式」だの「関数」だの・・・
どうしてもプログラムの用語が必要です。
私が説明するのが下手糞なだけかもしれませんが、それにしても、です。
やはり、最低限の共通認識としての用語の知識が必要です。

なので、このブログでは、その説明から入っているのです。
つまり、ここに書いていることが頭に入っていれば、プログラマの説明していることが
なんとなーーーく、わかるようになるかと思います。
100%理解してくてもいいです。なんとなくでいいです。
なんとなくでもいいので、頭に入っていれば、プログラマとしても説明しやすいし、
これから具体的なプログラムを学んでいく上で、かなり有利です。



さてさて、では、本題。



型の解説で、剣とか属性とか、ゲームっぽい単語を出して分かりやすく(あくまで主観)説明しましたが、
いきなり型とか属性のプログラムを組むだなんて、そんなの100%無理です。
頭のいい悪いとかじゃなく、無理なのです。

それは、そのプログラムを作るための基本をまだ知らないからです。
文でも式でも専門用語でもなく、まずは、「基本型」を知らなければなりません。


「基本型」「組み込み型」とも言います。
プログラマからすれば、「組み込み型」のほうが好まれますが、
たぶん「基本型」のほうが分かりやすいので、そっちで書きます。



基本型は、その名のとおり、基本となる型です。
剣や属性のような、プログラマが作るものではなく、言語に最初からある型です。

つまり、何もしなくても、C#言語でいつでもどこでも利用できる型のことです。
この基本型を学びましょう。



まず基本型を列挙します。

・整数型

・浮動小数点型

・論理値型

・文字型

・文字列型


「あれ?いくつか足りない気が・・・・」
っていうプログラマからの突っ込みは無視。


この4つが、基本型です。
なにやらいきなり、専門用語風なカンジで腰が引けたかもしれませんが、心配いりません。
普段の生活で使っているものばかりです。
それを、仰々しく書いただけです。


【 整数型 】

この型の、具体的な値をいくつか書いてみます。



-10,

21

777

0

255

1000000

-97531



そう、ただの 数字 ですね。

プラスの数字とマイナスの数字がありますが、すべてひっくるめて整数です。

このように、整数を扱う型を 整数型 といいます。

厳密には、整数型をさらに細かく分けると、
「8ビット整数」「16ビット整数」「32ビット整数」「64ビット整数」がありますが、今は無視します。

とにかく、普段使う数字を扱う型が整数型です。



【浮動小数点型】

なにやら難しそうですが、例をあげます。



12.34

0.000001

-5.6

3.1415

2.0

-12345.0



そう、小数です。
小さい点が数字と数字の間にドットが見えますが、それが小数点です。
小学校でも習うと思うので(ですよね?)、あえて細かく説明する必要はないと思いますが。

2.0 や -12345.0 は、一見、整数に見えるかもしれませんが、これも浮動小数点の型の値です。

ドットが入っていれば、それは浮動小数点型の数字なのです。

なぜ「小数」ではなく「浮動小数」なのか?「浮動ってなに?」という疑問はあるかもしれませんが、
説明はしません。気になったら検索してもいいでしょう。
知らなくてもC#でプログラムは組めますので、気にしなくていいです。

ゲームでは、この浮動小数点型はそこら中で使用します。



【論理値型】

これもなにやら専門用語風ですが、すごくシンプルです。



true

false



このどちらかになります。

 「えっ」


別の言い方をすると

「はい または いいえ」

「Yes または No」

「真(しん) または 偽(ぎ)」

「正しい または 間違っている」

「男 または 女」

・・・という、二者択一、二つのうちのどちらか、そういう意味合いを持つ型です。

『フラグ』という言い方のほうが、ゲーム的には通じやすいかもしれません。

「あいつの死亡フラグが立った」とは、つまり「論理値型の値が true になった」ということです。


よくある、チェックボックスなども、プログラムの中身は論理値です。
つまり


 こっちは true 。つまりフラグが立っている。

 こっちは false。つまりフラグが寝ている。


このチェックボックスは、実は論理値をUIで表示しているだけなんですね。


プレイヤーが死んでいるか?生きているか? も論理値ですし、
敵の視界に入っているか?入っていないか? も論理値ですし、
ヒロインとデートできるまで好感度が高くなったか?それとも達していないか? も論理値です。

ゲームは論理値の塊なのです。




【文字型】

もうそのまま、文字です。



'あ'

'高'

'S'

'a'

'3'

'☆'




はい。文字です。

1文字で 文字型 になります。

そして、ご覧のとおり、文字の周りを 「 ' 」 という記号で囲っています。
これは、それが文字だよ、ということをプログラムに教えるためのC#のルールです。

この記号は「シングルクォーテーション」といいます。
一般的なキーボードとWindowsでは、Shiftキー+7キー で入力できます。
シングルクォーテーションで囲った1つの文字は、C#言語が文字型だと判断します。

'3' は数字ではなく、シングルクォーテーションで囲まれているので「3」という文字です。
数字としては認識されず、3 という文字です。
シングルクォーテーションがない場合は、数字としての「3」になります。

ややこしく思うかもしれませんが、そういうルールなのです。



【文字列型】

文字列とは、いくつかの文字が集まってできる型です。



"Hello, world!"

"Unityで学ぶC#プログラミング"

"あれはトムの朝ごはんですか?"

"いいえ、あれはデイジーです。"

"3"

"☆"

""



文字列は、上記のような、文字の集合で「文章」といったほうが通じるかもしれませんが、
厳密には文章ではなく、「0個以上の文字の集まり」を指します。

たとえば 「"3"」 は、文字ではなく、3 という文字列です。

文字とちがい「 " 」 という記号を使います。
これは「ダブルクォーテーション」といいます。「 ' 」を続けて2回ではなく「 " 」で1つの記号です。
Shiftキー+2キー で入力できます。

「0個以上の文字の集まり」が文字列なので

""

も文字です。つまり、空っぽの文字列ということです。


ゲームでは、プレイヤーの名前とか、NPCのセリフのために用いられます。

"あそこの洞窟に行けば100%死ぬから気をつけるのじゃ"

という具合ですね。





さて、これでC#の基本型の解説が終わりました。

もう一度列挙したものを書いておきましょう。



・整数型

・浮動小数点型

・論理値型

・文字型

・文字列型



とっても大切なので、覚えてください。
これがないとプログラムは組めません。





ちょっと長かったかな。
とりあえず今日はここまで。

ちょっとはプログラム講座っぽくなってきたかな。?

4 件のコメント:

  1. unityとC#で検索して発見しました。
    ざっと読ませていただきました。
    これからも更新よろしくお願いします!!

    返信削除
    返信
    1. chitoさん
      コメントありがとうございます!
      正直なところ、かなり励みになります!
      ペースを守って更新できそうにないですが、お時間があるときにでもまたお越しくださいませ。

      削除
  2. 文字列型の説明のところ、
    >""
    >も文字です。

    ではなく

    >""
    >も文字列です。

    ではないでしょうか。

    細かいことかもしれませんが一応報告させていただきました^^

    返信削除
  3. この次が5なのですが、4はないんですか?

    返信削除