初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

Visual C# 2017 入門

11.ハイ&ローゲームを作ろう その4

 

今回は [ ハイ&ローゲームを作ろう その3 ] の続きです。

今までは IDE の使い方をメインとした内容でしたが、ここから少しずつ
プログラミング言語の仕組みについても説明します。

 

 

変数とは

プログラムを組むとき数値や文字の情報を扱います。
ほとんどの場合、変数と言われるものを使うことになります。

例えばジュースの自動販売機ならば、変数として「 投入金額 」と「 おつり 」を
用意します。そして
「 投入金額 」ー「 ジュース代 」という計算式で「 おつり 」を算出します。

 

変数とは何か

 

200 円、または、1000 円投入されることもあると思います。
投入された金額とジュース代により、おつりは変わってきます。
変化する値を記憶するために変数を使うのです。

 

 

変数の特徴は次のものがあります。
ここでは簡単に説明していますが、実はもう少し複雑です。
くわしくは後で少しずつ説明していきます。

 

変数のとは何か

 

 

変数を使ってみよう

それでは実際に使ってみましょう。
まず、変数を使うには宣言をします。
例えば「これから kazu という変数を使います」という感じです。
ちなみに kazu は私が勝手に付けた名前です。

long kazu = 0;
という宣言文を画像の位置に書き込みます。

 

変数の宣言

 

 

テストをするため、次のプログラムも追加してください。

 

変数に加算する

 

 

button1_Click の中を変更しています。( 24 行目と 25 行目)
label1.Text = "Hello c#"; を削除して次の2行を追加しました。

kazu++;
label1.Text = kazu.ToString();

これで button1 が押されるたびに次の処理が行われます。
・変数 kazu の内容に1ずつ足す
・ラベル label1 に変数 kazu の内容を表示する

 

 

実行してみます。
button1 をクリックすると label1 の表示が1になります。
続けてクリックすると2,3,4…とカウントアップしていきます。

 

加算した結果をラベルに表示

 

kazu++;
という書き方は、変数に1ずつ足したいときに使います。
2ずつ足したいときは書き方が変わって
kazu += 2;
というようになります。5ずつ足すときは
kazu += 5;
となります。

 

 

変数の宣言について

変数の宣言には「 」を指定する必要があります。
型とは、整数や文字列などのタイプのことです。
次のようになっています。

変数名
long kazu

宣言と同時に初期値を入れることができます。

long kazu = 5;

このように書けば、宣言時に kazu の内容は 5 になります。

 

 

「 型 」は色々あります。よく使うものを表にしました。
他にもあるので、プログラミングに慣れてきたらネットで調べましょう。

 

型 (タイプ) 内 容 備 考
long 整数(符号あり) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
double 倍精度浮動小数点型 小数点が利用可能
string 文字列
bool 論理ブール型 true または false

 

小数点を使わないのであれば long
小数点を使うのであれば double
文字列ならば string
選択肢が二択ならば bool
を使うのがいいでしょう。

 

 

変数に型があることで注意しなければならないことがあります。
宣言をした型と、違う型を使えないのです。
文字列型のところで整数をそのまま使うことはできません。
さきほど次のプログラムを書きましたね。

label1.Text = kazu.ToString();

これは label1.Text(文字列型)に対し、kazu(整数)を入れるために
メソッド ToString() を使いました。
これを使えば、整数型を文字列に変換することができるのです。
このように違う型での間でやりとりするときには、変換が必要になります。

 

 

変数のスコープについて

スコープとは簡単に言うと有効範囲のことです。
これについての説明は長くなるので、いま覚えて欲しいことだけ説明します。

変数の宣言をする場所に気を付けてください
メソッド内で宣言した変数は、そのメソッド内でしか使えないのですが
今回のようにメソッドの外で宣言すると、すべてのメソッドで使えるようになります。

 

変数のスコープについて

 

 

試しにメソッド button2_Click でも使ってみましょう。
30 行目と 31 行目を変更します。
今度は変数 kazu−1してみます。
kazu−− にすると1ずつ引かれます。

 

変数のスコープについて

 

 

実行してみましょう。
button1 を押すと1足されて、button2 を押すと1引かれます。
1つの変数を2つのメソッドで使っているのです。

 

変数の使い方

 

 

代入演算子とは

いままで使っている は代入演算子と言われています。

kazu = 5;
label1.Text = kazu.ToString();

これです。
右側の値を、左側の変数に入れるわけです。
右側は計算式(例:kazu + 1)でも OK です。

次のも代入演算子です。
kazu += 5;
これは kazu = kazu + 5; と同じことです。
kazu *= 10;
これは kazu = kazu * 10; と同じことです。

 

 

注意する点は、何でも代入できる訳ではないことです。
左右のタイプが違うと代入できないこともあります
例えば整数を扱う変数に、文字列は代入できないのです。

long kazu;
kazu = "Hello c#"; . . . . . . (エラーになる)

文字列の変数に整数を入れるときには変換が必要になります。
さきほど説明したメソッド ToString() を使って変換する方法です。
ほかにも変換が必要なパターンがあるので、必要になったらネットで調べてみましょう。

 

 

なお、数値の計算ではなく文字列として扱いたいときには " (ダブルコーテーション) で囲んで文字列にします。

String moji;
moji = "300 + 600";

このようにすれば 300 + 600 という文字列が代入されます。