'条件分岐 - 'GoTo' Kluge ?

 
MQL4で条件分岐/GoToの "クルージ"/"ワークアラウンド " を考えています。
 
クルージは必要ありません。ただ適切にコーディングすれば、問題はたいてい解決します。問題とあなたのコードを投稿してください。
int nu=0; switch (nu){
   default:
   :
   if (condition) break;
   :
}
for(int nu=0; nu <= 0; nu++){
   :
   if (condition) break;
   :
}
if (nu == 0) Print("break was taken");
 
https://docs.mql4.com/basis/operators/if

https://docs.mql4.com/basis/operators/switch

 

私たちはここで異なることを述べているのだと思います。私は、条件を満たさないものをスキップして、次の連続したステートメントや関数などに 進むのではなく、プログラム内の任意の場所にジャンプできるようにしたいと思っています。

現代の「構造化」プログラミング言語のほとんどは、GoToコマンドの使用を許可していません。構造化」というのは、GoTo文の使用を許可していないことを意味します。しかし、慎重に使用すれば、非常に有用である場合もあります。しかし、その使い方によって発生する可能性のある問題は、十分に大きいので、注意深く使う必要があります。自己責任で使用すること!」。

もう一つの可能性は、必要なときに「呼び出す」ことのできる、さまざまな外部サブルーチン、モジュール、変数、関数などを持つことです。メインプログラム内でも、別のプログラムでもかまいません。一般に、これらのサブルーチンは特定の機能を実行し、その結果のデータをメインプログラムに戻して利用します。これは、最近の構造化プログラミング言語に見られるもので、「GoTo」コマンドを使うほど危険なものではありません。インクルード、ライブラリ、あるいは.dllファイルの使用は、これに適しているのだろうか?これらのファイルからメインプログラムに戻って変数、データ、関数などを渡す方法はまだ見つかっていません。また、実際にこの方法でそれらを利用できるのかどうか?EAでグローバル変数を使用することで実現できる場合もあるかもしれません。

 
ありがとうOneWithZachy
 
FourX:
ありがとうOneWithZachy

本当に?

私は当時あなたのスレッドを読んで、あなたの評価を見て、klugeが何であるか分からないので、返信はありません:)

関数に渡すには、その値を渡すか、パラメータとして渡します。DLLに渡すには、Patrick S Nouvionの このビデオを見て ください。

もっと学ぶか?

もっと質問がある場合は、返信してください :)

 

関数で プログラミングすれば、GoToは必要ないと思います。

 
onewithzachy:

本当に?

私は当時あなたのスレッドを読んで、あなたの評価を見て、klugeが何であるか分からないので、返信はありません:)

関数に渡すには、その値を渡すか、パラメータとして渡します。DLLに渡すには、Patrick S Nouvionの このビデオを見て ください。

もっと学ぶか?

あなたがより多くのQsを持っている場合は戻って書いてください :)

私はまだ'Call'関数について深く掘り下げてはいません。 しかし、大部分は、EAプログラムの中で、順次以外の特定の場所に'Jump'(!'FTL'ではありませんが(<8))と'GoTo'を行う方法を見つけたいと思っています。 あなたの話から、それが私のやりたいことに有効かどうかはわかりません。 しかし、間違いなく、学び、知るには良いことです。 いずれ、必要な時に、必要な分だけ。

クルージ」とは、通常は行われないことを実現するために、さまざまなものを「こしらえた」ものです。 この場合、私はMQL4の標準機能である「GoTo」機能/コマンドがないため、これをこしらえようとしています。 前述のように、これらの機能を持たないのには十分な理由があります。 以前は多くのプログラミング言語で標準装備されていましたが、多くの問題を引き起こす可能性があるため、私の知る限りではほとんどすべてのプログラミング言語から削除されました。C言語にはないんでしょうか?COBOLからは削除されたし、FORTRANにもVisual BASICにもないような気がするのですが?

例を挙げましょう。数十年前、私は5、6行の小さなBASICプログラム(セグメント)を書き、その中に複数の、ネストした、条件分岐の「GoTo」コマンドを書きました。 トレーサーを使っても、それが何をやっているのかわかりませんでした。 )< 8) 参考までに、「Tracer On」のコマンドは「TRON」でした。この頭文字に見覚えはありませんか? これは、ウォルト・ディズニー・スタジオが作った最初のデジタル・アニメーション映画の名前で、たいしたストーリーラインもない、とてもダサいものでした。超・光速のバイクが迷路やマトリックスの中を走り回るだけ。 それをリメイクしたのだと思います。 でも、1作目があまりにもひどかったので、見てません。 GIはやっぱりGO=GIGO

 
SDC:

関数でプログラミングすればGoToは不要という意見に賛成です。

SDCの皆さん、こんにちは。

ほとんどのプログラミングと同様に、MQL4は事実上すべての「関数 」で、いくつかの行を飛び越える以外は、私がMQL4 EA内で行う方法を見つけようとしている真の「GoTo」関数を持って いません。拡大解釈して説明してください。論破されているわけではありません。何か思い当たる節があるようなので、それが何なのか、どのようなメリットがあるのかを知りたいのです。

 
私はBBC Basicの時代にGOTOを使っていました ... ....BBC BasicでもGOSUBとRETURNがあり、サブルーチン(関数)を使うことができました ... なぜMQL4でGOTOのようなものを使いたいのですか?