int f()
{
while ( true )
{
//много строк c return, continue, без breakreturn0;
//много строк c return, continue, без breakreturn1;
//много строк c return, continue, без break
}
return Random(); //(*) написано по требованию MQL компилятора //строка 61
}
Хочешь сказать при закрытых графиках не скрывается символ?
チャートを閉じた ときにシンボルが隠れないということですか?
ああ、この手の話には何度か出くわしたことがある。
それでもエラーメッセージは正しいです。
当初はあまり気にしていなかったのですが、あらためて見てみると、「これは正しくない」という議論もあるようです。そして、その理由は以下の通りです。
while(true) {}の後に何を入れるかは、これに尽きます。"どうせ行けない"・・・。returnは形式的にしか必要ありません - コンパイラがOKを出すために...そこで - そこにランダムな値を入れてみましょう - return Random();".
しばらくして、コードにいくつか変更を加え、今度はwhileの中にブレークを追加する必要があります。
この場合、コンパイラは、「OK.while(true) {}の後にコードがありますが、これは「break」ケースがすでに以前に提供されており、この一連の行の中に同じ「break」があるはずだという意味です。すべての返り値は当時すでに考えられていたのだから、気にするな!」。
そして最終的にはランダムな 値を得ることになる。
しかし、もし先頭に文字列(*)がなかったら、コンパイラは「Error: No.......まさか...以前は壊れなかったので、何か意図的なものを返さなければならない」。
(*)文字列は過剰なだけでなく、見つけにくいエラーの確率を高めることが判明した
当初はあまり気にしていなかったのですが、改めて見てみると、「これはおかしい」という意見もあり......。
さらに、あなたのこの例では、通常、「到達できないコード」の警告が発生するはずです。Studioもそのような警告は出さないが、ボーランドのコンパイラは確か出していた。
良い思い出です。
また、ボーランドは些細なことで警告を出さないので、またしても私の主張が証明されました。
ボーランドは無駄に警告を出さないしね...。
そこは納得いかない。:)私には、注目に値しない些細なことであるように思えます。return(0)を差し込むだけで、さっさと終わります。
さらに、MCLではwhile(true)の代わりにwhile(!IsStopped())を使った方がよいですし、その場合、ループ後のreturnはすでに必須です。
私のエディタでは、ポイントの後に使用可能なメソッドのリストが落ちません。とても不便なんです。どうすれば直るのでしょうか?旧バージョンでは、下に落ちました。
こんなのはどうでしょう
こんなのはどうでしょう