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