初心者のForeachとWhileの使い分けメモです
・Foreachは中のデータを全て取り出したい時
・Whileはbreakで処理を抜けたい条件はある
又は要素数が不確定な際に使用します。
個人的にはこんなイメージです。
正直違いが分からないし意味わかりませんでした。
一先ずはFor文から
private void button1_Click(object sender, EventArgs e)
{
int sum = 1;
for (int i = 1;i<5;i++)
{
sum = sum * i;
Console.WriteLine(sum);
}
}
結果 1 2 6 24
カウントを保持し、そのカウントが抜けたら処理が終了します。
次にForeach文
private void button1_Click(object sender, EventArgs e)
{
string[] array = new string[5] { "あ", "い", "う", "え", "お" };
foreach (var arr in array)
{
Console.WriteLine(arr);
}
}
結果 あ い う え お
配列の中身を1つずつ取り出し、中身が無くなったら終了します。
最後にWhile文
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
while(true)
{
if(i == 5)
{
break;
}
i++;
}
}
結果 iが5になった場合、処理を抜けます。
whileの中をtrueで記載する際はbreakを忘れずに置き、無限ループに気を付けましょう。
また、実際の使用例ですが
※List lines = new List(); と上で宣言します。
using (StreamReader reader = new StreamReader(".txt"))
{
//全て取得
while (!reader.EndOfStream)
{
var txt = reader.ReadLine();
lines.Add(txt);
}
}
StearmReaderにてEndOfStream(データがなくなるまで)リストに取得します。
foreachでは中身のデータが確立してる際に、不確定な場合はwhileを。
使い方は色々あるので、色々試してみてください。