次の方法で共有


X++ ループ ステートメント

この記事では、X++ のループ ステートメントについて説明します。

ループ ステートメントは、forwhiledowhile の 3 つがあります。 ループでは、ループに設定された条件が false になるまで、そのステートメントを繰り返します。 loop ステートメント内では、break および continue ステートメントを使用することができます。

for ループ

for ループの構文は次のとおりです。

for (initialization;test;increment) {statement}

for ループは、条件式 テストtrue である限り、 ステートメント を繰り返し実行します。 ステートメント はステートメントのブロックにすることができます。 テスト の結果に応じて、 for ループの本文 (ステートメント) は、 0 回以上実行されることがあります。

for ループは、制御変数に初期値を割り当て、また変数の増減ステートメントがあるために、他のループとは異なります。 これらの追加は for ループを作成します。これは、リスト、コンテナー、配列をトラバースする場合に特に便利です。

また、明細書を各要素に適用して、要素全体を増分し、最後の要素をテストする条件を設定することができます。

For loop の例

次のコード例では、整数の配列内の項目が出力されます。

int integers[10];
for (int i = 0; i < 10; i++)
{
    info(int2str(integers[i]));
}
// The output is a series of 0's.

while loops

while ループの構文は次のとおりです。

while (expression)statement

while ループは、条件 true である限り、 ステートメント を繰り返し実行します。 ステートメント はステートメントのブロックで置き換えることができます。 ステートメント は、条件が満たされた回数 (ゼロから多数) 実行されます。

While loop の例

次のコード例は、コンテナーを走査してコンテナーの内容を出力する while ループを示します。

container cont = ["one", "two", "three"];
int no = 1;
while (no <= conlen(cont))
{
    info(conPeek(cont, no));
    no++;
}
// The output is "one", "two", "three".

do...while ループ

do...while の構文ループは次のとおりです。

do {statement} while (expression) ;

do...while ループは、 while ループと似ていますが、条件は実行する必要がある ステートメント の後に表示されます。 ステートメント はステートメントのブロックにすることができます。 ステートメント は、 ステートメント の実行後にテストされるため、少なくとも 1 回は常に実行されます。 do...while ループは、レポートのパラメーターの取得など、必ず 1 回以上実行する必要があるタスクに適しています。

Do の例...while loop

次のコード例では、 realNumber より大きい10の最小累乗を検索します。

int FindPower(real realNumber)
{
    int exponent = -1;
    real curVal;

    do
    {
        exponent++;
        curVal = power(10, exponent);
    }
    while (realNumber > curVal);

    return exponent;
}

ステートメントの続行

continue ステートメントは、forwhile、または do...while ループの次の反復処理に直接移動する実行を発生させます。 実行または途中で、すぐにテストを実行します。 対象ステートメントで、増分手順を実行します。

続行明細書の例

次のコード例では、 Iarray[i] <= 0 の場合、ループ内の残りのステートメントは実行されず、 if ステートメントが再度試行される前に i が増分されます。

int Iarray[100];
for (int i = 0; i < 100; i++)
{
    if (Iarray[i] <= 0)
    {
        Info("Will continue.");
        continue;
    }

    info("Did not continue.");
}
// The output is "Will continue." for all 100 interations.

break ステートメント

ループ内の break ステートメントは、そのループを終了するために使用されます。 実行後、ループの後の最初のステートメントに移動します。

break ステートメントの例

この例は、while ループにおいて break ステートメントを使用しています。 ループ内で使用すると、ループは終了し、ループに続くステートメントから実行が継続します。 これは、 do... whilefor ループでも機能します。

var mainMenu = SysDictMenu::newMainMenu();
var enum = mainMenu.getEnumerator();
var found = false;
while (enum.moveNext())
{
    var menuItem = enum.current();
    if (menuItem.label() == "StringOfInterest")
    {
        found = true;
        break;
    }
}
if (found) 
{
    // do something
}