ブログタイトルを「FX自動売買システム開発部」から「autoFX」に変更しました!

do whileとbreakで特定の後続処理をスキップさせる小技

【2019/10/1記事復旧】
元の投稿日は2019/9/3でURLは「https://autofx100.com/2019/09/03/151226/」でした。

1回は必ず処理が実行される特徴を使う

プログラミングしていると、ある処理の後は特定の後続処理は行わせたくない時があります。

その時は処理をスキップさせる仕組みを考えるわけですが、スキップさせる方法としてはif文やreturnが一般的かと思います。

しかし、if文だと余計なフラグ変数が必要になってコードが分かりづらくなることがありますし、returnだと全ての後続処理をスキップしてしまいます。

特定の後続処理だけを手軽にスキップさせたいのです。

今まで悶々としていたのですが、先日ついに良い方法を閃きました。

それがdo while文とbreakの合わせ技です。

do while文とは、処理を必ず1回以上は実行するループ命令の1つです。ループ処理の最後にループ判定されるのが特徴です。

似たような命令にwhile文がありますが、こちらはループ処理の前にループ判定されます。ループ判定のタイミングが異なるのです。

breakはループ処理を途中で強制終了させる命令です。ループ処理にしか使えない点に注意してください。

この2つの命令を以下のようにプログラミングすることで、ある処理の後に特定の後続処理だけスキップさせることが可能になります。

do{
  // 処理させたい内容
  // ***

  if(何らかの条件){
    // ここでdo whileのブロックを抜け出したい!
    break;
  }

  // スキップさせたい処理
  // ***
}while(false);

// 処理させたい内容
// ***

while(false)にすることで、ループしないループ処理となります。

処理のスキップの方法としてお使いいただければ幸いです。

ちなみに、こんなことをしなければならない時点でプログラムの構造としてはよろしくないのですが、稼働中のプログラムに手を加える場合、修正箇所は極力減らしたいのが開発者の本心です。

手を加えれば加えるほど、バグが発生しやすくなりますから…。

>完全放ったらかしEA 「AutoEndlessCatchRange」

完全放ったらかしEA 「AutoEndlessCatchRange」

「本業が忙しい!」「でも資産運用したい!」そんなあなたに最適なEAです。兼業トレーダーの方はチャートを毎日みて分析してトレードする時間はなかなか確保できないものです。トレードは本EAに任せて、本業やプライベートの時間をもっと増やしませんか?元々は自分自身のために開発したEAですので、手抜き無しのガチものです。

CTR IMG