Skip to main content

配列

練習課題

C#を読みましょう

以下の表は、C#で書いた命令とその日本語の意味が書いてある。空枠を完成してください。

C#

日本語
int [] numbers = new int[10]
10個の整数が入る「numbers」という配列を作成
int [] numbers;
答え

整数型の配列を宣言のみ(初期化なし)

string [] names = new string[5];
答え

5個の文字列が入る「names」という配列を作成

答え
names[0] = "たろう";
「names」配列の一番最初(先頭)は「たろう」にする
答え
names[4] = "おおはら";
「names」配列の一番最後(後尾)は「おおはら」にする
int a = numbers[3];
答え

先頭から4つ目の要素を変数「a」の中に代入

答え
float [] distances = new float[3];
distances[0] = 1.3f;
distances[1] = 4.5f;
distances[2] = 7.9f;

// または
float [] distances = 
   new float[3] { 1.3f, 4.5f, 7.9f };

少数型の配列「distances」を宣言し、1.3f, 4.5f, 7.9f の3つの数値で初期化する

C#の処理を完成してみましょう

配列とfor文を使い、以下のスクリプトを完成してください(UnityでもOK)
 ※:文字列の長さは「変数名.Length」で求めることができる
 例:

string s = "Hello!";
int size = s.Length; // 文字列「s」の長さを求める
Debug.Log(size); // 6 を表示する

 ※:期待の結果は「最も長いフルーツ名は: grapefruit」

// フルーツの名前の配列
string [] fruits = ["lemon", "mikan", "orange", "grapefruit", "kiwi"];

// 最も長い文字列(結果)
string maxFruit = "";

// フルーツ1個ずつ確認
for (________; _________; ________)
{
    // i番目のフルーツを求める
    string f = _______________;

    // もし、今回のフルーツ名の方が長ければ
    if (f.Length > maxFruit.Length)
    {
        // 最も長いフルーツを更新
        ___________________;
    }
}

// 最大の長さのフルーツ名を表示
Debug.Log($"最も長いフルーツ名は: {______________}");
答え
// フルーツの名前の配列
string [] fruits = ["lemon", "mikan", "orange", "grapefruit", "kiwi"];

// 最も長い文字列(結果)
string maxFruit = "";

// フルーツ1個ずつ確認
for (int i = 0; i < 5; i++)
{
    // i番目のフルーツを求める
    string f = fruits[i];

    // もし、今回のフルーツ名の方が長ければ
    if (f.Length > maxFruit.Length)
    {
        // 最も長いフルーツを更新
        maxFruit = f;
    }
}

// 最大の長さのフルーツ名を表示
Debug.Log($"最も長いフルーツ名は: {maxFruit}");