1st term 1st week - dsuz/csharp GitHub Wiki

C# を実行するためのプロジェクトとソリューションを作る

Visual Studio を起動してプロジェクトを作ります。この時にプロジェクト テンプレートを選びますが、C# - すべてのプラットフォーム - Console のように選んでください。そうすると、選択肢が2つあります。この時、.NET Framework ではない方を選んでください。あとは適当に名前を付けて先に進んでください。このプロジェクトは課題が終わったら多分使わないし消してしまってもよいです。

以下のようなプログラムが表示されます。まずは F5 キー を押して実行して結果を見ましょう。

ここで必ず覚えなければいけないのは次の事です。

  1. class Program と static void Main(略) は絶対に必要
  2. Main の中に実行したい命令を書く
  3. 命令を書いたら ";"(セミコロン)で命令の終わりを決める
  4. {(波括弧)を開いたら必ず } で閉じなければならない
    • { } で囲まれている部分を「ブロック」という
  5. 波括弧を使う時は以下のように「インデント」する
    • 改行 → { → 改行 → Tab キーで字下げ(インデント) → 何か書く → Shift + Tab で字下げを戻す → }
    • これをする事で { の真下に } が来るので、{ と } の対応がわかりやすい
    • インデントは「こうした方がよい」という緩いものではなく、C# で書く時はこうしなければならないとマイクロソフトの規約で決められていて、これを正しくやっていないプログラムは人間には読めません
    • インデントのやり方はプログラミング言語によって違います
  6. using System; はとりあえず必ずこのようにしておいて下さい(後に「名前空間」を学ぶ時に説明します)

参考資料

  • 『独習 C#』1.3.2 ソースコードの全体像

文字列と標準出力 (Console.WriteLine())

paiza ラーニングの演習問題 をやりましょう。

ここで必ず覚えなければいけないのは次の事です。

  1. 文字を "(ダブルクォーテーション、二重引用符)で囲んだものを「文字列」または「文字列リテラル」という
    • 例えば "abc" を「文字列 abc」とか「abc という文字列」などと呼びます
  2. Console.WriteLine() と書いて () の中に文字列を指定すると、実行した時に文字列が画面に出力される
    • これは命令なので、命令の後には必ず ; で命令の終わりをコンピュータに教えること
    • Console.WriteLine() ではコマンドプロンプトに文字列を出力できるが、これを「標準出力に出力する」という
  3. Console.WriteLine() は「大文字小文字も含めて正確に」入力する必要があります
    • 例えば「Console.writeLine()」はコンピュータには何のことかわかりません
    • ほとんどのプログラミング言語では大文字と小文字が違うだけで全く違うものとみなされます
    • コンピュータは「ちょっと違うけど多分これだろう」というような推測はしてくれません
  4. プログラムが文法的に間違っている(ルール通りに書かれていない)場合、「コンパイル エラー」になります
    • コンパイル エラーは「入力されたプログラムがルール通りでないのでコンピュータが理解できない」ということです
    • この時、エラーメッセージがとても重要なのでしっかり読んで理解するように努めてください

引き続き演習2(以降)を解答していきましょう。

参考資料

  • 『独習 C#』2.3.5 文字列リテラル

コメント

paiza ラーニングの演習問題 をやりましょう。

ここで必ず覚えなければいけないのは次の事です。

  1. プログラム内に //(「スラッシュ」を2つ重ねる)を書くと、その行のそれより右側に書かれていることは無効になる
    • これを利用してプログラムの中に「人間のための説明」を書くことがよくある。これを「コメント」という。
    • 既に書かれている命令をコメントにすることで実行しないようにすることを「コメントアウト」という
    • コメントアウトしていた命令から // を取り除いてまた実行できるようにすることを「アンコメント」という
      • 「コメントイン」という人もいるが、正しくは「アンコメント」である
  2. // は単一行のコメントを書くことができるが、/* */ でブロックコメント、/// でドキュメンテーションコメントを指定することができる
    • 詳しくは参考資料を参照してください
    • ドキュメンテーションコメントは Unity でプログラムを書くようになったら多用するので、その時に覚えればよいでしょう

参考資料

  • 『独習 C#』1.3.2 ソースコードの全体像 - コメント

練習問題

HTML についての paiza ラーニングの演習問題 1~3 を一緒に解答していきましょう。

変数 (string 型)

paiza ラーニングの演習問題 をやりましょう。

ここで必ず覚えなければいけないのは次の事です。

  1. 変数には名前とデータ型(型)が必要である
    • 変数はデータ型を指定して宣言しなくてはならない
    • 変数を宣言した行でを代入することを初期化という
    • 現時点で知っているデータ型は「文字列型(string 型)」のみである
  2. var a = "123"; という命令で、変数 a に文字列 123 を代入している
    • var というのは「型推論する」つまり「右辺の型に応じて自動的に変数の型を決定する」キーワードである
    • 本来 var は string(文字列型)と指定する。これは Visual Studio を使うと本来の型を確認することができるが、現在では var で代用できる。どちらを使ってもよい。
  3. 変数にはが入っていて、変数を使うとプログラム内でその値を使う事ができる
  4. "+" で文字列と文字列を連結した文字列を作れる
    • つまり "abc" + "def" は "abcdef" になる

引き続き演習2, 3 を一緒に解答していきましょう。

変数の概念

よくある変数の説明(プログラミングとゲームの杜 より)

参考資料

  • 『独習 C#』
    • 2.1 変数 ~ 2.1.1 変数の宣言
    • 2.2.7 型推論
    • 型について既に知っている人は、索引から string、文字列というキーワードを調べてみるとよいでしょう

変数 (int 型)

paiza ラーニングの演習問題 をやりましょう。

ここで必ず覚えなければいけないのは次のことです。

  1. Console.WriteLine() の () の中に整数を入れると、実行した時に出力される
  2. 整数と整数を +, -, *, / で繋ぐと足し算・引き算・掛け算・割り算になる
    • この +, -, *, / を演算子(算術演算子)という
    • % という演算子は余り(剰余)を計算することができる
    • 演算子の左右には半角スペース一文字を空けるようにして下さい。そうしないと読めません
  3. 文字列は string 型であったが、整数は int 型であり、変数を使うことができる
    • int n = 10; という命令で、整数型の変数 n に値 10 を代入している
  4. 整数 (int) に対しても var を使うことができる
  5. 整数は int 型だが、実数は double 型というものが用意されている

引き続き演習2(以降)を解答していきましょう。

参考資料

  • 『独習 C#』3 演算子 ~ 3.1 算術演算子

標準入力 (Console.ReadLine()) と、文字列型 (string) から整数型 (int) への変換

paiza ラーニングの演習問題 をやりましょう。

ここで必ず覚えなければいけないのは次のことです。

  1. string a = Console.ReadLine(); と書くと、入力された文字列を受け取ることができる
    1. これを「標準入力からを受け取る」という
    2. 入力される値が複数ある時は、続いて string b = Console.ReadLine(); と書くと2つの入力値を受け取ることができる(3つ以上も同様)
  2. int n = int.Parse("1"); と int.Parse() の () の中に整数を表す文字列を入れると、n に整数に変換した値を代入できる
    • つまり、を文字列型から整数型に変換して変数に代入している
    • 文字列が整数に変換できない文字列である場合(例: "x")はエラーになる

引き続き演習2をやりましょう。

ランダムな数(乱数)を得る

paiza ラーニングの演習問題 をやりましょう。

ここで使うのは次のことです。

  1. var random = new Random(); と書き、次の行に int n = random.Next(a, b); と書くと、n には a 以上 b 未満(「以下」ではない) の整数が代入される
    • これは Unity でゲームを作る時には滅多に使わないので、今は覚えなくてもよいです

まとめ

ここまでの各項目で「必ず覚えなければいけない」と書いてあることは必ず覚えてください。理解できたと思ったら参考資料の該当箇所を読んでみるとよいでしょう。理解できない場合はあまり自分だけで理解しようとこだわらず、人に質問してください。人と話をすることはとても重要です。

教科書に載っていないこと

以下の事柄は基本的であるため、教科書には載っていません。paiza ラーニングの動画を見る、試してみる、人に聞いてみる、他の教科書を見るなどして学んで下さい。

  1. Console.WriteLine() について(標準出力)
  2. Console.ReadLine() について(標準入力)
  3. 文字列と文字列は + で連結できる
  4. 各型 (string, int) の基本的な使い方
  5. int.Parse() を使った文字列型から整数型への変換
  6. エラー(コンパイル エラー)とその解決方法

課題

  1. paiza ラーニングの C#入門編1: プログラミングを学ぶ の演習を全て正解する
    • 合計 23 問あります
    • 受講する(動画を見る)必要はありませんが、演習が解けない場合は動画を見て学んでもよいでしょう
    • 動画は見ていなくても受講済みにしてしまって構いません
    • 提出方法: C#入門編 から認定証を表示して、アシスタントに見せることで提出とします
  2. paiza ラーニングの C#体験編1: C#をはじめよう の「02:はじめてのプログラミング」から「08:データを受け取る」までの演習を全て正解する
    • 合計 20 問あります
    • 受講する(動画を見る)必要はありませんが、演習が解けない場合は動画を見て学んでもよいでしょう
    • 動画は見ていなくても受講済みにしてしまって構いません
    • 「09:標準入力と標準出力」については演習がないので課題にしていませんが、内容は理解しておいてください
    • 提出方法: C#体験編1: C#をはじめよう を表示して、問題に星がついていることをアシスタントに見せて提出とします

次回の予告

次回は以下について学びます。

  1. 配列
  2. その他の型 (char, double, bool, float)
  3. String.Split() による文字列の分割
  4. 制御構文 1 - 条件判定 (if, switch)
  5. 制御構文 2 - 繰り返し処理
  6. デバッグ実行とブレークポイント
  7. オンラインコンパイラ(オンライン実行環境)