C#の型を学んだので、その知識を活かして変数の使い方を学びましょう。
なお、ここで学ぶのはC#で変数を利用する方法です。変数?って人は先に次の記事を読んでください。
プログラムで絶対に利用する変数、これをコンピュータサイエンスの視点から理解しましょう。汎用的な知識を得ることで、どのプログラミング言語を学ぶ時でも役に立ちますよ。 変数 (variable) の概念 その名前の通りで変化する数です。プログラムを作る時、全ての値が最初から決まってる訳ではないですよね?例えばユーザーが何かしらの入力をしたとして、それを保存する場所がなければ利用できません。そういった願いを叶えてくれるのが変数です。 変数とメモリの関係 最初にメモリの仕組みを理...
変数宣言と利用方法
難しくないので、例を見たほうが早いでしょう。
つまりは変数宣言は
です。
そして値を代入するときは
です。
また、変数を出力するときはConsole.WriteLineに変数名を記述します。
この記述については本題とズレるので解説しませんが、今はそういうものと思ってください。
ちなみに変数名に予約語は利用できません。裏技みたいな方法で近しいことができるのですが、普通に迷惑コードなので辞めてください。
後、変数名に日本語が使えるのですが、僕は反対派なので見える範囲で使うことは許しません。ローマ字もNG、ちゃんと英語を使いましょう。

日本語の駄目なとこは何ですか?

許容するやつの気持ちが分かんないってのが1番だけど、そもそも入力の切り替えがめんどう。
後は日本語は1文字で2文字分の幅が必要だから、インデントを揃えるのが困難で嫌。

感情的な理由にしか聞こえませんが...

こういうのをプログラマ宗教問題と言います。取扱には注意しましょう。
変数宣言と同時に値を代入する方法
変数宣言と同時に値を代入することもできます。
複数の変数を同時に宣言する方法
同じ型であれば複数の変数を同時に宣言することもできます。
変数の初期化
これは変数を利用する前に何らかの値を代入することを言います。
タイミングは宣言時でもいいし、利用前なら宣言後でもいいです。
C#ではローカル変数を作った場合を除き、初期化は自動で行われます。
このローカル変数とは大雑把に言うと関数の中で利用する変数です。
つまりは先程から例で紹介してる変数がローカル変数です。
対してクラスなどに所属する変数は自動的に初期化が行われます。
これは見てもらったほうが早いのでサンプルコードを用意しました。
記述は気にせず実行してください。値が自動的に0になると思います。

自動的に初期化される値は型ごとに決まってます。これは型を学習した際に学びましたよね?。
そこで覚えた値が初期化で利用されます。とは言え、今は意図的に初期化すること心掛けたほうがいいですよ。
変数のスコープ
別の記事で少し触れましたが、変数にはスコープと呼ばれる有効範囲があります。
具体的には変数を作成したスコープよりも同じか、それより下位のスコープしか変数を利用できません。
アクセスできない変数を利用した場合はビルドエラーになります。これを次のサンプルコードで確認してください。

ビルド失敗を確認できましたかね。動かしたい場合は最後のConsole.WriteLine(age)をコメントアウトしてください。
また、当然のことですが有効なスコープで同名の変数を作ることも不可能です。
リテラル
さて、変数の基礎は先程までで終わりですが、実際に利用するにはリテラルというルールを覚えなくてはいけません。
リテラルとは値の記述方法です。先程の例で説明すなら15という数値がリテラルになります。
この15は10進数で書かれたことを意味しますが、プログラミングの世界では2進数でも16進数でも記述できます。
さらに言うと文字列とかも記述できるので、これらを区別する記述が必要になります。
では、実際にはどんなリテラルが存在するのが例を使いながら学びましょう。
POINT値の記述はリテラルと呼ばれるルールに従う必要がある。
論理リテラル
bool型で利用するリテラルです。論理値のtrueかfalseしか記述できません。
整数リテラル
整数型で利用するリテラルです。そのまま記述すれば10進数。0xで16進数、0bで2進数を記述できます。
合わせてサフィックスと呼ばれる仕組みがあり、特定の型を直接指定できます。
こんな感じに数値の後ろにU, L, ULを付ける記述をします。
実数リテラル
浮動小数点数値型で利用するリテラルです。数値の後ろにD, F, Mを付けると特定の型が記述できます。
文字リテラル
char型で利用するリテラルです。''(シングルクォーテーション)で囲むのだけ覚えればいいです。

\で特殊文字を記述することをエスケープシーケンス(escape sequence)と呼びます。
文字列リテラル
string型で利用するリテラルです。基本的には""(ダブルクォーテーション)で囲むのですが、いくつかパターンがあります。

@付きはパスの入力に便利です。"""はテストでファイルの中身を丸ごと記述する時とかに使います。
null
nullは参照型が何も参照していない状態を意味します。つまりは値が無いみたいな状態です。

この何もない状態で安易に操作を試みるとNullReferenceExceptionが発生してプログラムが落ちます。
今は気にしなくていいけど、将来的には常にnullを意識してください。
var(宇宙最強)
一応は伝えておきますが、C#がある程度できるようになるまで使わないでください。
これは型推論と呼ばれる機能で右側の値に応じて自動的に型を判別してくれます。
とりあえず例を見せましょう。
結論は右側が分かれば左を予測できるよねってことで、C#が勝手に型を判断してくれます。

つまりは全部varにすれば型なんて考えなくても記述できちゃうんだな。
これが最強で僕なんかはvarしか使いません。ついでに型の文字列が3文字で揃うのが美しいんですよね。

全部これでいいじゃん。

注意点は動作の途中で型が変わったりはしません。当たり前ですがvarで生成した時に数値型なら数値しか代入できません。
型チェックが緩い言語だと急に文字列を放り込めるのですが、C#のvarはあくまで生成時に限った型推論です。
あとがき
変数名はプログラマ宗教論争が起きて地球が消滅するので気をつけましょう。
◆ C#に関する学習コンテンツ
この記事は参考になりましたか?
コメント