無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

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配列変数の要素がある限りループしなさい!」といっているんだ。
これでひとまず全部の繰り返し構造を説明したピヨ。
じゃあ今回はこれでおしまいにするよ。では、また会いましょう。
別窓 | C# | コメント:3 | トラックバック:0 | ∧top | under∨
<<中の人の徒然草2 | 無差別に技術をついばむ鳥 | C#をつつく3ー配列。要素をまとめよう。>>

この記事のコメント

C#全然分かってないのですが、、、
str != "q" って、!= のオペレータか
なんかが string 型に定義済みなんで
出来るわけですか?

## VB のループのとこ、11回回って
まっせ、旦那。
2008-06-07 Sat 01:55 | URL | ま #-[ 内容変更]
ま さん毎度どうも。
「!=」については、System.String型のbool op_Inequalityという関数に実装されていて、op_Inequality(str, "q")とするよりも
str != "q"とするほうが見やすいのでそう表示するだけなんだ。
実は他の演算子も実態は関数なんだよ。
興味ある人も居ると思うから、あとでもっと詳しく説明した記事を書くよ。

>## VB のループのとこ、11回回って
まっせ、旦那。
ごめん、それどこかな?
2008-06-07 Sat 08:22 | URL | インドリ #-[ 内容変更]
失礼しました。

>## VB のループのとこ、11回回って
まっせ、旦那。

の場所分かりました。forループのi < 10のところですよね?
VBならば For i = 0 To 9 て数値を書くんだけど、C#では【条件】を書くからi < 10(変数iが10より小さいならば)となって、10になった瞬間条件を満たさなくなるからループを終了するんだ。
それにより、0から9の10回ループが回る事になるんだ。
2008-06-07 Sat 17:57 | URL | インドリ #-[ 内容変更]
∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |