エラー、バグ、質問 - ページ 1643

 
A100:

コンパイルエラー: ')'.- すべてのコントロールパスが値を返すわけではない

コードのすべての分岐が値を返すわけではないんですね。

int f()
{
 int res = 0;
        while ( true ) //или for(;;)
        {
//много строк c return, continue, без break
                res = 0;break или continue
//много строк c return, continue, без break
                res = 1;break или continue 
        }
return(res);
}

あるいはこんな感じ。

int f()
{
        while ( true ) //или for(;;)
        {
//много строк c return, continue, без break
                return 0;
//много строк c return, continue, без break
                return 1;
        }
  return(значение возвращаемое по умолчанию если не выполнены предыдущее return);
}
 
Vitalii Ananev:

コードのすべての分岐が値を返すわけではないんですね。

彼の例では、全員がそうです。while(true)を抜けるにはbreak(これはない)かreturnしかない。
 
Sergei Vladimirov:
彼の言う例で言えば、全部です。while(true)を終了する唯一の方法は、break(これは彼が持っていない)かreturnです。
反論するつもりはない。しかし、コンパイラのエラーメッセージ')' は- すべての制御パスが値を返すわけではない、とのこと。
 
Vitalii Ananev:
反論するつもりはない。しかし、コンパイラのエラーメッセージ')'- すべての制御パスが値を返すわけではない、とのこと。
同じことをC++でやってみる
 
A100:
同じことをC++でやってみる

C++と何の関係があるのですか?

....

あなたのコードをもっとよく見てみました。演算子returnによる 戻り値を括弧で囲んで書くというミスがあります。return(0)ですが、return 0と書いていますね。

 
Vitalii Ananev:

C++と何の関係があるのですか?

しかも、この場合、C++はある種のモデルとして機能する。
ヴィタリイ・アナネフ

あなたのコードをもっとよく見てみました。return演算子による 戻り値は、括弧で囲んで書くべきでした。return(0)ですが、return 0と書いていますね。

しかし、なぜ不要な括弧があるのでしょうか?
 
A100:
C++はこの場合、参照として機能しますが

C++で書いて、全部mqlでコンパイルしているんですか?

なぜ余計なブラケットをつけたのか?

これは、mql言語の構文 です。

 
Vitalii Ananev:

C++で書いて、全部mqlでコンパイルしているんですか?

これは、mql言語の構文 です。

括弧を付けずに値を返すことができる。試してみてください。
 
Artyom Trishkin:
括弧を付けずに値を返すことができる。試してみてください。
はい、コンパイルされますが、私はいつも括弧で書いています。それはもう、ルール化された習慣です。
 
Vitalii Ananev:

C++で書いて、全部mqlでコンパイルしているんですか?

これは、mql言語の構文 です。

遠い過去からやってきたのでしょうか?)