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 練習問題