ループ命令はスクリプトの実行の流れを制御する。もしNijaTraderという文字列を100回出力したいのであれば100行のコードを書くか、あるいはループ命令を使用して少ない行数のコードで同じことを実現することができる。
while (Boolean expression)
{
//ここが繰り返し実行される
}
例:
// OutputウインドウにNinjaTraderという文字列を100回出力する
int x = 0;
while (x < 100)
{
Print("NinjaTrader");
x = x + 1;
}
do
{
//ここが繰り返し実行される
}
while (Boolean expression)
例:
// OutputウインドウにNinjaTraderという文字列を100回出力する
int x = 0;
do
{
Print("NinjaTrader");
x = x + 1;
}
while (x < 100)
for (initializer; boolean expression; iterator)
{
//ここが繰り返し実行される
}
例:
// OutputウインドウにNinjaTraderという文字列を100回出力する
for (int x = 0; x < 100; x++)
{
Print("NinjaTrader");
}
foreach (type identifier in boolean expression)
{
//ここが繰り返し実行される
}
例:
クッキーびんの中のオートミールクッキーの数を数え上げたい場合
// クッキーびんの中のオートジールクッキーの数を数え上げる
int oatmealCookies = 0;
foreach (cookie in cookieJar)
{
if (cookie.Type == Oatmeal)
{
oatmealCookies = oatmealCookies + 1;
}
}
Print("There are " + numberOatmeal.ToString() + "oatmeal cookies in the cookie jar.");
ループを脱出するためにいつでもbreak命令を使用することができる。次の例は無限ループであるが、最初の命令文の後にbreakで脱出する。
// 最初の繰り返しの後、無限ループを脱出する
while (0 == 0)
{
Print("NinjaTrader");
break;
}
continueコマンドは、ループの次の繰り返しにジャンプする。次の例では、continueコマンドが繰り返しのそれぞれの回でループの先頭に戻すように制御するので、NinjaTraderという文字列は出力されない。
// NinjaTraderという文字列は出力されない
for (int x = 0; x < 100; x++)
{
continue;
Print("NinjaTrader");
}