ホーム » 初心者向けEA講座 » 02.初心者向け MQL5 学習プラン » 2-3. ループ処理(for文、while文、do-while文)

2-3. ループ処理(for文、while文、do-while文)

02.初心者向け MQL5 学習プラン

ループ処理(for文、while文、do-while文)

MQL5でプログラムを効率的に実行するために、ループ処理は欠かせません。ループを活用することで、同じ処理を繰り返し実行でき、コードの可読性と効率が向上します。本記事では、MQL5で使用される主要なループ文である for 文、while 文、do-while 文の基本構造と使用例を詳しく解説します。

for文とは

for 文は、繰り返し回数が決まっている場合に適しています。基本構文は以下の通りです。

for (初期化; 条件; 更新処理) {
    // 繰り返し実行する処理
}

for文の基本例

void OnStart() {
    for (int i = 0; i < 5; i++) {
        Print("カウント: ", i);
    }
}

実行結果:

カウント: 0
カウント: 1
カウント: 2
カウント: 3
カウント: 4

解説: このプログラムでは、i を 0 から 4 まで増加させながら Print 関数で出力します。ループの各回で i の値が表示され、5回実行されます。

配列とfor文

void OnStart() {
    int array[] = {10, 20, 30, 40, 50};
    for (int i = 0; i < ArraySize(array); i++) {
        Print("配列の要素[", i, "]: ", array[i]);
    }
}

実行結果:

配列の要素[0]: 10
配列の要素[1]: 20
配列の要素[2]: 30
配列の要素[3]: 40
配列の要素[4]: 50

解説: このコードでは、配列 array の要素を for 文で順番に取得し、各要素のインデックスと値を表示します。

while文とは

while 文は、条件が true である間、繰り返し処理を行います。

while (条件) {
    // 繰り返し実行する処理
}

while文の基本例

void OnStart() {
    int count = 0;
    while (count < 3) {
        Print("カウント: ", count);
        count++;
    }
}

実行結果:

カウント: 0
カウント: 1
カウント: 2

解説: このプログラムでは、count が 3 になるまでループが繰り返されます。count を 1ずつ増やしながら出力するため、3回実行されます。

do-while文とは

do-while 文は、最低1回は処理を実行するループです。

do {
    // 繰り返し実行する処理
} while (条件);

do-while文の基本例

void OnStart() {
    int count = 0;
    do {
        Print("カウント: ", count);
        count++;
    } while (count < 3);
}

実行結果:

カウント: 0
カウント: 1
カウント: 2

解説: do-while 文は、最初に処理を1回実行し、その後 count が3未満である限りループを続けます。そのため、少なくとも1回は必ず処理が行われます。

break文とcontinue文

ループ処理の途中で制御を変更するために、break 文と continue 文を使うことができます。

break文の例

void OnStart() {
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break;
        }
        Print("カウント: ", i);
    }
}

実行結果:

カウント: 0
カウント: 1
カウント: 2
カウント: 3
カウント: 4

解説: i == 5 のとき break が実行され、ループが強制終了されます。

continue文の例

void OnStart() {
    for (int i = 0; i < 5; i++) {
        if (i == 2) {
            continue;
        }
        Print("カウント: ", i);
    }
}

実行結果:

カウント: 0
カウント: 1
カウント: 3
カウント: 4

解説: i == 2 のとき continue によってスキップされ、i = 2 の場合の処理は実行されません。

まとめ

用語説明
ループ処理同じ処理を繰り返し実行すること
for文決まった回数のループを実行する制御構造
while文条件が true の間、ループを実行する制御構造
do-while文最低1回は実行されるループ処理
break文ループを強制終了する
continue文現在のループ処理をスキップし、次の反復に進む
無限ループ終了条件がなく、永久に繰り返されるループ

MQL5でループ処理を適切に使うことで、プログラムの効率化が図れます。用途に応じて for 文、while 文、do-while 文を使い分けましょう。

コメント

タイトルとURLをコピーしました