講義メモ 後半

p.044 変数とは

・英語のvariable value(変わり得る値)の和訳で「変わった数」ではない
・記憶域(メモリ)を必要分確保して名前をつけたもの
・よって、データを格納する器のイメージを持つ
・C#などでは、事前に変数を宣言しておく必要があり、宣言によって確保される
 ※ Python、JavaScriptなどでは宣言不要で初回利用時に確保される
・宣言の書式: データ型 変数名;
・データ型を指定することで「確保すべき大きさ」と「格納するデータの特性」を明示する
・データ型にはstring(p.044:文字列型)、double(p.046:倍精度浮動小数点数(実数)型)、int(p.057:整数型)などがある
・宣言の書式例: string text; //文字列型の変数textの宣言(textが変数名)
・変数に与えるデータを値といい、値を格納することを代入という
・宣言と同時に最初の値(初期値)を代入することを初期化という
・初期化の書式: データ型 変数名 = 値や式;
・なお、この書式の「=」は代入に用いる2項=演算子であり「等しい」という意味はない(元は「←」記号)
 ※ちなみに「等しい」は「==」(2項==演算子)で示す
・初期化の書式例: string text = "ハロー!"; //文字列型の変数textの初期化

p.045 変数を作成してその値を代入する

・タイトルに誤りがあり「変数を初期化してその値を利用する」が正しい
・初期化した変数はそれ以降で利用できる
・例えば、Debug.Log(初期化済の変数名) とすると、変数に格納されている値が表示される
・格納された値は何度でも利用できるのがポイント

アレンジ演習:p.045 Chap1_8_1.cs

・「Debug.Log(text);」をもう1行記述して、同じ値が2度表示されることを確認しよう

作成例

using UnityEngine;

public class Chap1_8_1 : MonoBehaviour {
    void Start() {
        string text = "ハロー!"; //文字列型の変数textの初期化
        Debug.Log(text); //変数textに格納されている値を表示⇒ハロー!
        Debug.Log(text); //変数textに格納されている値を表示⇒ハロー!
    }
}

p.045 変数を使うメリットは?

・初期化には値に加えて式も指定できる
・例: double p = 3.14 * 10 * 10; //半径10の円の面積で初期化
・式には初期化済の変数を利用できる
・例: double pi = 3.14; Debug.Log(pi * 10 * 10); //半径10の円の面積を表示
・よって、初期化にも初期化済の変数を用いる式を指定できる
・doubleは倍精度浮動小数点数の「倍」が由来で、64ビット分の誤差が小さい実数を扱える
・よって、double型の変数の初期化では実数値を指定できるが、整数値も指定可能で、自動的に実数に変換されてから格納される
 ※このことを暗黙の型変換という
・例: double kakaku = 100; //100.0に自動変換されて初期化
・初期化においては基本的にその型の値を用い、暗黙の型変換もできない場合、文法エラーになる
・エラーの例: double kakaku = "ハロー!"; //文字列によるdouble型変数の初期化は不可

アレンジ演習:p.046 Chap1_6_2.cs

・エラーの例「double text = "ハロー!";」を追記してどういうエラーになるか確認しよう
・確認後「//」を前置してコメントにすること(コメントアウトという)

作成例

using UnityEngine;

public class Chap1_8_2 : MonoBehaviour {
    void Start() {
        double kakaku = 100; //100.0に自動変換されて初期化
        double urine = kakaku * 1.08; //100.0×1.08→108.0で初期化
        Debug.Log(urine); //変数urineに格納されている値を表示⇒108と表示
        //double text = "ハロー!"; //文字列によるdouble型変数の初期化は不可
    }
}

p.045 変数を使うメリットは?:続き

・内部で用いる値が将来変更される可能性があったり、その値を複数回用いる場合、リテラルではなく、変数に格納して用いると良い
・例えば、消費税計算を毎回「* 1.1」とする代わりに「* tax」としておき、冒頭で変数taxを税率で初期化すれば、
 保守性が高い(変更・改良しやすい)プログラムになる
・例:
 double tax = 1.1; //税率が変わったらここだけ変更でOK
 double book = 1000, magazine = 800; //それぞれの価格を初期化
 Debug.Log(book * tax); //税率が変わっても変更不要
 Debug.Log(magazine * tax); //税率が変わっても変更不要

参考:VSによるインデントの一括修正機能

・Ctrlを押しながらA、K、Dの順に押すと指定してあるルールによって、ソースのインデントが一括修正される
・なお、先行する全角空白がある場合、削除してくれる
・他者にソースを見せる前に行うと良い

アレンジ演習:p.047 Chap1_8_3.cs

・上記の例を追記して確認しよう

作成例

using UnityEngine;

public class Chap1_8_3 : MonoBehaviour {
    void Start() {
        double kakaku = 150; //150.0に自動変換されて初期化
        double urine = kakaku * 1.08; //150.0×1.08→162.0で初期化
        Debug.Log(urine); //変数urineに格納されている値を表示⇒162と表示

        double tax = 1.1; //税率が変わったらここだけ変更でOK
        double book = 1000, magazine = 800; //それぞれの価格を初期化
        Debug.Log(book * tax); //税率が変わっても変更不要
        Debug.Log(magazine * tax); //税率が変わっても変更不要
    }
}

参考:文字列型変数と実数

・文字列型変数を実数値で初期化するとエラーになる
・例:string text = 3.14; //エラーになる
・なお、実数値をダブルクォーテーションで囲んで文字列にすればエラーにならない
・例:string text = "3.14"; //エラーにならない
・ただし、この変数は実数演算の式には使えない
・例:double s = 100 * text; //エラーになる

p.048 変数の命名ルールを覚えよう

・C#における変数の命名ルール
① 英大文字、英小文字、数字、「_」、2バイト文字が利用可能
 ※ つまり他言語では使える記号(「-」「$」「@」など)はC#では利用不可
② ただし、先頭には数字は利用不可(よって数字のみも不可)
③ 予約語と完全に同じ名は利用不可
 例:using、public、class、void、double、string など

p.048 変数の命名ルールを覚えよう:補足

・文法エラーにははならないが、変数名の命名で推奨されるルールがある
 ※実務ではルールが決められることが多い
① 予約語と同じつづりで大文字を混ぜた名前は避ける
 例:Using、Public、Class など
② 2バイト文字は避ける(誤読しやすい)
③ 1文字の大文字は避ける(誤読しやすい)
④ 先頭に「_」は避ける(「_」を推奨しない場合もある)
⑤ 長過ぎたり誤解を招く変数名は避ける

提出:アレンジ演習:p.047 Chap1_8_3.cs

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です