講義メモ ・p.21「インデント」から p.21 インデント ・プログラムの構造を読み取りやすくし、誤解を防ぐために、インデント(字下げ)を行う ・なお、Visual Studioには自動インデント修正機能もある:Ctrlキーを押しながらA、K、Dを順に押す ※他者にソースを見てほしいときは必ずインデントを揃えてからにしよう p.22 変数を使ってみる ・記憶域(メモリ)を必要な分だけ確保して名前をつけたもの ・これをデータ(値)の格納に用いるので、器のイメージになる ・言語によって異なるが、C/C++/C#などでは、事前に確保が必要 ・この事前に確保することを「変数の宣言」という ・整数用の変数を宣言する書式: int 変数名; 例: int number; ・複数の整数用の変数をカンマつなぎで同時に宣言できる。例: int hp, mp; ・変数にデータ(値)を格納することを代入という ・代入の書式: 変数名 = 値; 例:  int number; //整数の変数を宣言  number = 17; //変数に値を代入 ※この「=」には「等しい」という意味はなく「←」の変形といわれている ・代入は上書きであり、すでに値が代入されている変数にさらに代入すると値が上書きされる 例:  int number; //整数の変数を宣言  number = 17; //変数に値を代入(17が入る)  number = 16; //変数に値を代入(16に変わる) ・整数の変数には小数点のある値(実数)は代入できない(エラーになり実行できない) 例:  int number; //整数の変数を宣言  number = 17.1; //エラーになり実行できない 参考:Visual Studioの起動とプロジェクトの用意:2回目編 ① スタートボタンなどから「Visual Studio 2022」を起動(バージョンに注意) ② 起動画面に前回使ったプロジェクトがあればクリックして用意完了。なければ③へ ③ プロジェクトを開くをクリックし、プロジェクトのあるフォルダを開いて「.sln」ファイルをクリックして開く ④ プロジェクトエクスプローラーでプロジェクト名を右クリックして「追加」「新しい項目」  ここで「すべてのテンプレートの表示」ボタンが出たらクリック ⑤「コード」「コードファイル」をクリックし名前を入力して「追加」 ⑥ 既存のソースファイルや講義メモなどからソースをコピペ ⑦ 既存のソースファイルがプロジェクトにある場合は右クリックして「プロジェクトから除外」 ミニ演習 mini022.cs ・上の整数の変数の宣言と、実数を代入するとエラーになることを試そう 作成例 //ミニ演習 mini022.cs using System; //名前空間を使うことを示す class MyName01 //クラス名(同じ名前がプロジェクト内になければOK) { //クラスの定義の開始 public static void Main() //実行用メソッド(手続き・処理) { //メソッドの定義の開始 int number; number = 17.1; //エラーになる(17.0でもダメ) } //メソッドの定義の終わり } //クラスの定義の終わり p.22 変数を使ってみる(つづき) ・宣言しただけの変数の値は不定(又は規定値)なので、基本的には代入して用いる ・よって、宣言と同時に代入して良い。これを初期化という。 ・整数の変数の初期化の書式: int 変数名 = 値; 例: int number = 17; ・2つ以上の変数の初期化も可能。例: int hp = 50, mp = 5; ・一部の変数の初期化も可能。例: int x, hp = 50, mp = 5; ・変数名は大文字、小文字、数字、「_」が使える(ひらがな、漢字もOKだが推奨されないことが多い) ・ただし、1文字目は数字禁止。(「_」も推奨されないことが多い) ・キーワードと同じ変数名はエラーになる ・プログラムの他の部分やシステム側で提供してくれる変数名と重複するとエラー p.24 C#のキーワード ・予約語とも言い、言語の必要上、特別な意味のある単語のこと ・キーワードは全て小文字 ※なお、キーワードと同じ綴りの大文字交じりの単語はキーワードではないが、推奨されないことが多い  例: int Int = 10; //エラーにはならないが読みづらい p.25(変数からの代入と式) ・初期化や代入ができている変数から、他の変数に代入できる ・例: int x. y; x = 10; y = x; //xもyも10が代入される ・整数や整数の変数と、整数や整数の変数の間に「+」を入れると加算した結果が得られるので、これを変数に代入できる 例:  int a = 10, b = 5, c; //整数の変数aを10で初期化し、bを5で初期化し、cを宣言 c = a + b; //変数aに代入されている10と変数bに代入されている5を加算した結果の15をcに代入 p.25 変数のデータを表示する ・Console.WriteLine()のカッコ内に変数を記入すると、その変数に代入されている値が表示される 例:  int hp = 50; Console.WriteLine(hp); //「50」が表示される ・また、Console.WriteLine()のカッコ内に式を記入すると、その式の結果が表示される  int hp = 50, mp = 20; Console.WriteLine(hp + mp); //「70」が表示される ・「+」には複数の意味があり、整数や整数の変数どうしだと加算。どちらかまたは両方が文字列だと連結になる ・なお、文字列はダブルクォーテーション(")で0文字以上の文字を囲んだもので表される  例: "A"、"シャア"、"" ・よって、整数の変数の値を表示するときに、前後に文字列を連結すると親切な表現になる 例:  int age = 20;  Console.WriteLine("私の年齢は" + age + "歳です"); //「私の年齢は20歳です」が表示される ・なお、文字列に整数を連結した結果は文字列になるので、これに整数を「+」すると連結になる p.25 text01.cs //p.25 text01.cs using System; //名前空間を使うことを示す class Text01 //クラス名(同じ名前がプロジェクト内になければOK) { //クラスの定義の開始 public static void Main() //実行用メソッド(手続き・処理) { //メソッドの定義の開始 int a = 10, b = 20, total; //整数の変数aの初期化、bの初期化、totalの宣言 total = a + b; //整数の変数aの値とbの値を加算した結果をtotalに代入 Console.WriteLine(a + " + " + b + " = " + total); } //メソッドの定義の終わり } //クラスの定義の終わり アレンジ演習:p.25 text01.cs ・整数の変数totalを宣言ではなく「a + b」で初期化してみよう ・すると次の行の「total = a + b;」が不要になる ・これでわかるように、変数の初期化には代入済の変数や式が利用できる 作成例 //アレンジ演習 p.25 text01.cs using System; //名前空間を使うことを示す class Text01 //クラス名(同じ名前がプロジェクト内になければOK) { //クラスの定義の開始 public static void Main() //実行用メソッド(手続き・処理) { //メソッドの定義の開始 int a = 10, b = 20, total = a + b; //整数の変数aとbを値で、totalを式の結果で初期化 Console.WriteLine(a + " + " + b + " = " + total); //連結して表示 } //メソッドの定義の終わり } //クラスの定義の終わり p.25 text02.cs //p.25 text02.cs using System; //名前空間を使うことを示す class Text02 //クラス名(同じ名前がプロジェクト内になければOK) { //クラスの定義の開始 public static void Main() //実行用メソッド(手続き・処理) { //メソッドの定義の開始 int a = 10, b = 20; Console.WriteLine(a + " + " + b + " = " + (a + b)); } //メソッドの定義の終わり } //クラスの定義の終わり p.25 text02.csのポイント解説 ・式は左から右へ処理されるので、text01.csの 「a + " + " + b + " = " + total」は ① "10 + " + b + " = " + total //aの値と文字列" + "が連結される ② "10 + 20" + " = " + total //文字列"10 + "とbの値が連結される ③ "10 + 20 = " + total //文字列"10 + 20"と文字列" = "が連結される ④ "10 + 20 = 30" //文字列"10 + 20 = "とtotalの値が連結される ・式の中でカッコでくくった部分は先に実行されるので、text02.csの 「a + " + " + b + " = " + (a + b)」は ① a + " + " + b + " = " + (30) //まず「a + b」を実行(どちらも整数なので加算) ② "10 + " + b + " = " + 30 //aの値と文字列" + "が連結される ③ "10 + 20" + " = " + 30 //文字列"10 + "とbの値が連結される ④ "10 + 20 = " + 30 //文字列"10 + 20"と文字列" = "が連結される ⑤ "10 + 20 = 30" //文字列"10 + 20 = "と30が連結される p.27 2.4 WriteLineメソッドとWriteメソッド ・WriteLineメソッドはコンソールに表示後改行する ・次の表示を前の表示の続きにしない場合、改行をしないWriteメソッドを使うと良い  例: Console.Write("なまぐさ"); Console.WriteLine("坊主"); //「なまぐさ坊主」と表示して改行 p.27 text03.cs //p.27 text03.cs using System; //名前空間を使うことを示す class Text03 //クラス名(同じ名前がプロジェクト内になければOK) { //クラスの定義の開始 public static void Main() //実行用メソッド(手続き・処理) { //メソッドの定義の開始 Console.Write("あ"); //表示し改行しない Console.Write("い"); //〃 Console.Write("う"); //〃 Console.Write("え"); //〃 Console.Write("お"); //〃 Console.WriteLine(); //改行のみを行う } //メソッドの定義の終わり } //クラスの定義の終わり 提出:アレンジ演習 p.25 text02.cs → text02a.cs ・text03.csを参考にして、Console.Writeを用いることで「+」による連結を行わずに同じ結果を得よう ヒント: ① Console.Writeで a を表示 ② Console.Writeで " + " を表示 ③ Console.Writeで b を表示 ④ Console.Writeで " = " を表示 ⑤ Console.Writeで a + b を表示 ⑥ Console.WriteLineで改行のみを行う あるいは、⑤をConsole.WriteLineにすれば⑥は不要 次回予告:p.28「フォーマット指定子を使った変数の表示」