演習 - 変数の値の設定と取得

完了

変数はデータの一時的なストレージ コンテナーであるため、"書き込み" および "読み取り" を目的としたものとなっています。 次の演習で、両方の操作を行う機会があります。

演習 - 変数の使用

この演習では、変数の宣言、変数への値の割り当て、変数値の取得などを行います。

手順 1: コード エディターですべてのコードを削除する

マウスを使用してコード エディターのすべてのテキストを強調表示してから、BackSpace キーまたは del キーを選択して全部削除します。

全部削除しない別の方法でも不要になったコード行を無効にすることができます。それについては後で説明します。

手順 2: 変数を宣言して、値を割り当てる

変数に値を割り当てるには、"代入演算子" を使用します。これは、単一の等号文字 = です。

コード エディターで次のコードを追加します。

string firstName;
firstName = "Bob";

値の割り当ては、"変数の設定" または単に "設定" 操作とも呼ばれます。

手順 3: 変数に値を不適切に割り当ててみる

割り当ては右から左に行われることに注意することが重要です。 つまり、C# コンパイラは、まず代入演算子の右辺の値を理解する必要があり、それにより、代入演算子の左辺にある変数への代入を実行できるようになります。 この順序を逆にすると、C# コンパイラを混乱させることになります。

手順 2 で記述したコードを次のコードに合わせて修正します。

string firstName;
"Bob" = firstName;

次にコードを実行します。 出力コンソールに表示される最初のエラーは次のとおりです。

(2,1): error CS0131: The left-hand side of an assignment must be a variable, property or indexer

手順 4: 正しくないデータ型の値を変数に不適切に割り当てる

前の説明で、C# は型を適用するように設計されていると説明しました。 変数を使用する場合、"型の適用" とは、あるデータ型の値を、別のデータ型を保持するように宣言された変数に割り当てることができないことを意味します。

手順 3 で記述したコードを次のコードに合わせて修正します。

int firstName;
firstName = "Bob";

次にコードを実行します。 出力コンソールに次のエラーが表示されます。

(2,9): error CS0029: Cannot implicitly convert type 'string' to 'int'

エラー メッセージに、C# コンパイラがバックグラウンドで実行しようとしていることが示されます。 文字列 "Bob" を "暗黙的に変換" して int 値にする試みが行われましたが、それは不可能です。 つまり、丸い穴に四角い杭を押し込むことはできないのです。 それでも、C# では、四角い杭を丸い穴に押し込む試みが行われましたが、"Bob" という単語に対応する数字がないため、それは失敗しました。

暗黙的および明示的な型変換の詳細については、他のモジュールで説明します。

手順 5: 変数に格納した値を取得する

変数から値を取得するには、変数の名前を使用するだけです。 この例では、変数の値を設定してから、その値を取得してコンソールに出力します。

手順 4 で記述したコードを次のコードに合わせて修正します。

string firstName;
firstName = "Bob";
Console.WriteLine(firstName);

次にコードを実行します。 出力コンソールに次の結果が表示されます。

Bob

変数から値を取得することは、"変数の取得" または単に "取得" 操作とも呼ばれます。

手順 6: 変数の値を再度割り当てる

変数の再利用と再割り当ては、何度でも行うことができます。 この例は、その考え方を説明します。

手順 5 で記述したコードを次のコードに合わせて修正します。

string firstName;
firstName = "Bob";
Console.WriteLine(firstName);
firstName = "Beth";
Console.WriteLine(firstName);
firstName = "Conrad";
Console.WriteLine(firstName);
firstName = "Grant";
Console.WriteLine(firstName);

次にコードを実行します。 出力コンソールに次の結果が表示されます。

Bob
Beth
Conrad
Grant

手順 7: 変数を初期化する

変数から値を取得するには、事前に変数を値に設定しておく必要があります。 そうしないと、エラーが表示されます。

手順 6 で記述したコードを次のコードに合わせて修正します。

string firstName;
Console.WriteLine(firstName);

次にコードを実行します。 出力コンソールに次の結果が表示されます。

(2,19): error CS0165: Use of unassigned local variable 'firstName'

ローカル変数が未割り当てのままになる可能性を回避するために、値を宣言したらできるだけ早くそれを設定することをお勧めします。

実際には、変数の宣言と、変数の値の設定の両方を 1 行のコードで実行することができます。 この手法は、"変数" の初期化と呼ばれます。

この手順で前に記述したコードを次のコードに合わせて修正します。

string firstName = "Bob";
Console.WriteLine(firstName);

次にコードを実行します。 次の出力が表示されます。

Bob

まとめ

変数の使用についてここまで学習した主なポイントを次に示します。

  • 変数から値を取り出す (取得する) には、事前に変数に値を割り当てて (設定して) おく必要があります。
  • 変数を初期化するには、宣言の時点で変数に値を割り当てます。
  • 割り当ては右から左に行われます。
  • 代入演算子として 1 つの等号文字を使用します。
  • 変数から値を取得するには、変数の名前を使用するだけです。