講義メモ 後半

p.150 foreach文による反復処理

・foreach文は配列の全要素について繰り返したい場合の簡略構文で、後述する配列以外の構造(コレクション)にも対応している
・書式: foreach(型 作業変数 in コレクション){作業変数を用いる処理}
・型はvarでOK
・例: foreach(var 作業変数 in 配列){ Console.Write(作業変数); } //配列の全要素を表示
・コレクション側の値の変更は反映しない。よって、配列の要素を書き換える処理はできない

p.150 foreach01.cs

//p.150 foreach01.cs
using System;
class foreach01 {
    public static void Main() {
        string[] Animal = new string[]{"犬", "猫", "雉", "猿"};
        int[] Num = new int[]{10, 20, 30, 40};
        foreach (string str in Animal) { //配列Animalの全要素について順にstrに取り出しながら繰返す
            Console.WriteLine(str);
        }
        Console.WriteLine();
        foreach (int i in Num) { //配列Numの全要素について順にiに取り出しながら繰返す
            Console.WriteLine(i);
        }
    }
}

アレンジ演習:p.150 foreach01.cs

・varキーワードを出来るかぎり用いてみよう

作成例

//アレンジ演習:p.150 foreach01.cs
using System;
class foreach01 {
    public static void Main() {
        var Animal = new string[]{"犬", "猫", "雉", "猿"};
        var Num = new int[]{10, 20, 30, 40};
        foreach (var str in Animal) { //配列Animalの全要素について順にstrに取り出しながら繰返す
            Console.WriteLine(str);
        }
        Console.WriteLine();
        foreach (var i in Num) { //配列Numの全要素について順にiに取り出しながら繰返す
            Console.WriteLine(i);
        }
    }
}

アレンジ演習:p.150 foreach01.cs 続き

・2次元配列、ジャグ配列の要素をforeachで表示しよう

作成例

//アレンジ演習:p.150 foreach01.cs
using System;
class foreach01 {
    public static void Main() {
        var name = new [,]{{ "Taro", "Jiro" }, { "Saburo", "Shiro" } }; //nameはstring[,]型配列になる
        foreach (var str in name) { //配列nameの全要素について順にstrに取り出しながら繰返す
            Console.WriteLine(str);
        }
        var f = new[] { new[]{ 0.5, 9.9, 0.9 }, new[]{ 1.5, 2.3 } }; //fはdouble[][]型ジャグ配列になる
        foreach (var i in f) { //ジャグ配列fの全要素について順に1次元配列iに取り出しながら繰返す
            foreach (var w in i) { //1次元配列iの全要素について順にwに取り出しながら繰返す
                Console.WriteLine(w);
            }
        }
    }
}

p.152 練習問題 ヒント

・合計sumを0で初期化しておく
・コンソールに「受験者数:」と表示して受験者数numに入力
・受験者数を要素数とする点数の配列pointを生成
・点数pointの全要素についてカウンタiを用いて下記を繰返す
 ・i + 1を用いて「●番目:」と表示して点数point[i]に入力
 ・点数point[i]の値を合計sumに足しこむ
・sumをdouble型にキャストして受験者数numで割り平均値を得て表示
・配列pointをソート
・配列pointを逆順にする
・配列pointの全要素を表示

提出:p.152 練習問題

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です