C#をつつく4ー繰り返し構造。くるくる回るよ。
次はプログラムの繰り返し構造だー
2回繰り返してみたピヨ。
プログラムをひたすら1行目から最後までずーと流れ落ちるように実行するなんて不可能だし面倒なだけ。
だからC#にもプログラム繰り返すための文法があるんだ。
その文法とは、forループ、whileループ、 do/whileループ、foreach/inループの4つもあるんだ。
ビックリした人が居るかもしれないけど、そんなに難しくないので1つずつ見ていこう。
では早速forループのつまらないコードを見てね。
using System;
class Program
{
static void Main( string[ ] args ) {
for( int i = 0; i < 10; i++ ) Console.Write( i + "\t" );
}
}
このコードは10回数値をコンソール画面へ出力するものなんだ。
Console.Write( i + "\t" )を10回書く事を思えばループのありがたさがわかるよね。
つまりforループとは一定の回数ループする文法なんだ。
じゃあ、次はwhileループを見てみよう。
using System;
class Program
{
static void Main( string[ ] args ) {
string msg = "何かキー入力してEnterキーを押して。" +
"※Qを押せば終了だよ。";
Console.WriteLine( msg );
string str = Console.ReadLine( );
while(str != "q") //Qキーを押されるまでループ
{
Console.WriteLine( "貴方は今" + str + "を押しましたね。" );
Console.WriteLine( msg );
str = Console.ReadLine( );
}
}
}
早速試してみよう。forループとの違いがわかるかな?forループの例とwhileループの例との違いは、ループ回数が事前にわからない所なんだ。
事前に何回ループしたらいいのかわからない場合はwhileループを使おう。
じゃあ次は・・・do/whileループの例を見てみよう。
using System;
class Program
{
static void Main( string[ ] args ) {
string msg = "何かキー入力してEnterキーを押して。" +
"※Qを押せば終了だよ。";
Console.WriteLine( msg );
string str = Console.ReadLine( );
do {
Console.WriteLine( "貴方は今" + str + "を押しましたね。" );
Console.WriteLine( msg );
str = Console.ReadLine( );
} while(str != "q"); //Qキーを押されるまでループ
}
}
さっきのwhileループの例とそっくりに作ったけど、その違いがわかるかな?答えは・・・・・1回は実行する事なんだ。
両方のコードを実行していきなりqを入力してEnterキーを押してみよう。
do/whileループの場合の方が表示されるメッセージが多いよね?
それは、ループ内のコードが実行される回数が多いからなんだピヨ。
最後はforeachループを見てみよう。
using System;
class Program
{
static void Main( string[ ] args ) {
string[ ] messages = new string[ ] {
"りんご", "とまと", "メロン", "みかん" };
foreach ( string msg in messages ) //ここに注目
{
Console.WriteLine( msg );
}
}
}
例のコードをじーと見ると、配列と配列の要素の型がforeach内で宣言されているのがわかる。このforeachループは、配列などの複数の要素がある型の全ての要素を順次取り出す時に使用するんだ。
つまり、この例の場合は「message配列変数の要素がある限りループしなさい!」といっているんだ。
これでひとまず全部の繰り返し構造を説明したピヨ。
じゃあ今回はこれでおしまいにするよ。では、また会いましょう。