エラー、バグ、質問 - ページ 2641 1...263426352636263726382639264026412642264326442645264626472648...3185 新しいコメント traveller00 2020.02.11 03:52 #26401 bool Func() { for(int i=1;;++i) { if(i==1) continue; if(i==100) return false; } } void OnStart() { Func(); } そんなアドバイザーがいるんですね。エラーを投げます '}' - not all control paths return a value Test.mq5 10 1 続けてコメントすれば問題ないです。変だと思うのは私だけでしょうか? Vladimir Karputov 2020.02.11 05:11 #26402 traveller00: そんなアドバイザーがいるんですね。エラーを投げます 続けてコメントすれば問題ないです。おかしいと思うのは私だけでしょうか? 関数がvoidとして宣言されていない場合は、値を返さなければ なりません。 bool Func() { for(int i=1;;++i) { if(i==1) continue; if(i==100) return false; } //--- return(false); } traveller00 2020.02.11 05:39 #26403 この関数からの出口は、i==100 を通してのみである。なぜcontinueが出現すると、関数からさらに抜けることになると考えるのだろうか。 Vladimir Karputov 2020.02.11 06:01 #26404 traveller00: この関数から抜け出すには、i==100を通るしかない。なぜ、continueの出現が機能からの追加的な退出につながると考えるのだろうか。 単出力、多出力は問わない。重要なのは、void以外の型の関数を宣言したことです。つまり、その関数は必ず値を返さなければなりません。 traveller00 2020.02.11 06:41 #26405 関数で、値を返す bool Func() { for(int i=1;;++i) { if(i==1) continue; if(i==100) return false; } } この機能から抜け出すには、これしかない。つまり、値を返す必要があるのは、ここだけなのです。そして、C/C++コンパイラも私に同意している。MQLがこれでも独自の基準を設けているのであれば、continueを削除しても正常にビルドされるのはなぜでしょうか? Alexey Viktorov 2020.02.11 07:52 #26406 traveller00: 関数で、値を返す この機能から抜け出すには、これしかない。つまり、値を返す必要があるのは、ここだけなのです。そして、C/C++コンパイラも私に同意している。 MQLがこれでも独自の基準を設けているのであれば、continueを削除しても正常にビルドされるのはなぜでしょうか? コンパイラは、ループが処理され、コードがリターンに到達するかどうか分からないので、安全機能を必要とします。 traveller00 2020.02.11 08:30 #26407 Alexey Viktorov: コンパイラは、ループが処理されるかどうか、コードの実行がリターンに到達するかどうかを知らない。そのため、安全対策が必要なのだ。 C/C++コンパイラは、このことを完全に理解している。MQLコンパイラは、私の理解では、C/C++コンパイラの1つをベースにしているようです。しかし、それにしても、仮に独自のロジックを持っているとしても、なぜcontinueがなければわからないのに、continueがあればその知識がなくなるのでしょうか? Alexey Viktorov 2020.02.11 10:07 #26408 traveller00: C/C++コンパイラは、このことを完全に理解している。MQLコンパイラは、私の理解では、C/C++コンパイラの1つをベースにしているようです。しかし、それにしても、仮に独自のロジックを持っているとしても、なぜcontinueがなければわからないのに、continueがあればその知識がなくなるのでしょうか? おそらく、このようなコードを見るのは一見さんだけなので bool Func() { for(int i=1;;++i) { if(i==100) continue; if(i==100) return false; } } は、何も考えずに何が起こるかわかる。私見では、文句はMQLではなくCやC++に言うべきでしょう。そんなうっかりミスを防いでくれるのがmqlなのです。 削除済み 2020.02.11 10:51 #26409 traveller00: 関数で、値を返す この機能から抜け出すには、これしかない。つまり、値を返す必要があるのは、ここだけなのです。そして、C/C++コンパイラも私に同意している。 この点、MQLがまだ独自の基準を持っているのであれば、なぜcontinueを外すと正常にビルドされるのでしょうか? あなたのこの機能はバグです。i==100の場合、次の同じi==100のチェックは機能しません。そして、無限ループに陥ります。 削除済み 2020.02.11 15:21 #26410 開発者の皆様、誤りの ご指摘をお願いします。 Обсуждение статьи "Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)" 2018.06.10www.mql5.com Опубликована статья Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II): Автор: Anatoli Kazharski... 1...263426352636263726382639264026412642264326442645264626472648...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そんなアドバイザーがいるんですね。エラーを投げます
続けてコメントすれば問題ないです。変だと思うのは私だけでしょうか?
そんなアドバイザーがいるんですね。エラーを投げます
続けてコメントすれば問題ないです。おかしいと思うのは私だけでしょうか?
関数がvoidとして宣言されていない場合は、値を返さなければ なりません。
この関数から抜け出すには、i==100を通るしかない。なぜ、continueの出現が機能からの追加的な退出につながると考えるのだろうか。
単出力、多出力は問わない。重要なのは、void以外の型の関数を宣言したことです。つまり、その関数は必ず値を返さなければなりません。
関数で、値を返す
この機能から抜け出すには、これしかない。つまり、値を返す必要があるのは、ここだけなのです。そして、C/C++コンパイラも私に同意している。MQLがこれでも独自の基準を設けているのであれば、continueを削除しても正常にビルドされるのはなぜでしょうか?
関数で、値を返す
この機能から抜け出すには、これしかない。つまり、値を返す必要があるのは、ここだけなのです。そして、C/C++コンパイラも私に同意している。 MQLがこれでも独自の基準を設けているのであれば、continueを削除しても正常にビルドされるのはなぜでしょうか?
コンパイラは、ループが処理され、コードがリターンに到達するかどうか分からないので、安全機能を必要とします。
コンパイラは、ループが処理されるかどうか、コードの実行がリターンに到達するかどうかを知らない。そのため、安全対策が必要なのだ。
C/C++コンパイラは、このことを完全に理解している。MQLコンパイラは、私の理解では、C/C++コンパイラの1つをベースにしているようです。しかし、それにしても、仮に独自のロジックを持っているとしても、なぜcontinueがなければわからないのに、continueがあればその知識がなくなるのでしょうか?
C/C++コンパイラは、このことを完全に理解している。MQLコンパイラは、私の理解では、C/C++コンパイラの1つをベースにしているようです。しかし、それにしても、仮に独自のロジックを持っているとしても、なぜcontinueがなければわからないのに、continueがあればその知識がなくなるのでしょうか?
おそらく、このようなコードを見るのは一見さんだけなので
は、何も考えずに何が起こるかわかる。私見では、文句はMQLではなくCやC++に言うべきでしょう。そんなうっかりミスを防いでくれるのがmqlなのです。関数で、値を返す
この機能から抜け出すには、これしかない。つまり、値を返す必要があるのは、ここだけなのです。そして、C/C++コンパイラも私に同意している。 この点、MQLがまだ独自の基準を持っているのであれば、なぜcontinueを外すと正常にビルドされるのでしょうか?
あなたのこの機能はバグです。i==100の場合、次の同じi==100のチェックは機能しません。そして、無限ループに陥ります。