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

複雑な条件を指定する

論理演算子を使う

paiza ラーニングのレベルアップ問題集から条件分岐メニューの問題 "AND" をやりましょう。

続いて同じく 問題 "OR" をやりましょう。

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

  • 条件式で「かつ」を指定したい時は && で複数の条件式を繋げる
  • 条件式で「または」を指定したい時は || で複数の条件式を繋げる
  • && や || のことを「論理演算子」という
  • 関係演算子は常に2項の比較しかできないので、3つの値を比較したい時は論理演算子が必要になる
    • 1 < n < 10 というような比較はできない
    • 上のような比較をしたい時は n > 1 && n < 10 と書かなければならない

参考資料

  • 『独習 C#』3.4 論理演算子

if を入れ子構造にする

以下のように if を入れ子構造(ネスト)にすることで、論理演算子と同様のことができる。

using System;

public class Program
{
    public static void Main()
    {
        int a = 5;
        int b = 10;
        
        if (a >= 10)
        {
            if (b >= 10) // a >= 10 && b >= 10 と同じ
            {
                Console.WriteLine("どちらも 10 以上");
            }
            else    // ※1
            {
                Console.WriteLine("どちらかが 10 以上");
            }
        }
        else if (b >= 10)    // ※2
        {
            Console.WriteLine("どちらかが 10 以上");
        }
        // ※1 と ※2 を合わせると a >= 10 || b >= 10 と同じ
    }
}

論理演算子を使うか、if を入れ子構造にするか、どちらにするかは場合に応じて都合の良い方を使いましょう。また、インデントを正しく行いましょう。制御構文が入れ子構造になっているのにインデントが乱れているとコードが読めません。

多次元配列と多重ループ

多次元配列

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

  1. 2次元配列を作成しよう
  2. 2次元配列を操作しよう

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

  1. 配列をさらに配列に格納することで多次元配列(ここまでは2次元配列)を作れる
  2. 2次元配列は型を 型名[][] と表す
    • int 型の2次元配列の型は int[][]、string 型の2次元配列は string[][] と表す
    • 3次元配列の場合は int[][][] と表す

参考資料

  • 『独習 C#』2.5.3 配列型

多重ループ

if と同様、繰り返し処理も入れ子構造にすることができます。

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

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

  • 最初のループのカウンタ変数は i, 次は j, k,... とすることが多いです
  • インデントを正しく行うこと
    • 制御構文が入れ子構造になっているのにインデントが乱れているとコードが読めません

参考資料

  • 『独習 C#』4.3.3 ループのネストとbreak/continue命令

その他

HTML を使う以下の演習問題は一緒にやりましょう。

  1. 2次元配列で画像を配置しよう

メソッド(関数)

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

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

  • メソッドは、処理をまとめておき、それをさらに呼び出すことができます
  • 今までに使っていた Console.WriteLine() や string.Split()、int.Parse() などもメソッドです
    • Unity で出てきた Start() と Update() もメソッドです
  • メソッドは「関数」と呼ぶこともあります
    • 関数⊃メソッドですが、C# ではメソッドと関数は同じと考えて差し支えありません

引数と戻り値

paiza ラーニングの演習問題 をやりましょう。戻り値の型は最初 void でよいですが、int でも回答しましょう。

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

  • まずは用語を覚えて、メソッドの「呼び出し方」を学びましょう
  • 引数は「ひきすう」と読みます
    • 「いんすう」ではありません
    • 英語では「パラメーター (parameters)」といいます
  • 戻り値は「もどりち」と呼びます
    • 「返り値」という表現も見かけますが、誤変換する恐れがあるため戻り値と言っておいた方がよいでしょう
  • 引数と戻り値はこれまでにも使っていました(後述します)
  • 引数は () の中で渡したり受け取ったりします
  • 引数は型が決まっています
  • 複数の引数を使う時はカンマ区切りで受け取ったり渡したりします
  • 戻り値も型が決まっています
    • 値を戻さない関数は void 型を指定します
  • メソッドには return 命令が必要です
    • return 値; と書くとその値を戻り値として返します
    • 戻り値の型が void である場合は return; と値を指定せずに書きます

以下はこれまでに使っていた引数と戻り値の例です。

Console.WriteLine("Hello");	// "Hello" が引数

string str = "56, 3, 6, 49";
string[] data = str.Split(',');	// ',' が引数であり、戻り値を変数 data に代入している
int n = int.Parse(data[0]);		// data[0] が引数であり(値は "56")、戻り値(整数に変換した値)を変数 n に代入している

その他

使用頻度の低い機能に対する以下の演習問題は一緒に解いていきましょう。

  1. 引数のデフォルト値
  2. 名前付き引数を理解しよう
  3. 可変長引数

実は Console.WriteLine(), Console.Write() の引数は可変長引数です。

参考資料

  • 『独習 C#』7.3 メソッド

課題

  1. paiza ラーニング レベルアップ問題集の条件分岐メニューから "AND+OR" カテゴリの問題 全てに正解する
    • 6問あります
  2. paiza ラーニングの C#入門編5: 多次元配列を理解しよう, C#入門編6: メソッドを理解しよう の演習を全て正解する
    • 合計 25 問あります
    • 受講する(動画を見る)必要はありませんが、演習が解けない場合は動画を見て学んでもよいでしょう
    • 動画は見ていなくても受講済みにしてしまって構いません

次回の予告

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

  1. クラス
  2. オーバーロード
  3. プロパティ