• ベストアンサー

return trueの対象がint型のソース

MT4のプログラムを勉強中なのですが、 if ( dLow = dLowZone ) { return true; } というソースが出てました。 if文の中に出てくる dLow はint型の変数で dLowZone はdouble型の変数なのですが、この場合、return true; が実行される場合のtrue は何に対して返ってくるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6850/9745)
回答No.3

そのプログラムは、関数の一部分ではないですか? return は、関数の実行を終え呼び出し元に戻るという構文で、その際に指定した値は戻り値となります。 例えば、 bool func1(int dLow, double dLowZone ) { if ( dLow = dLowZone ) { return true; } return false; } となっていた場合、func1() 関数の値(戻り値)として、true または false を返す、という訳です。 関数(の戻り値)が bool と定義されているからtrue/false を返すのであって、dLow・dLowZone 変数の型には依存しません。 --以下余談-- int型とdouble型をイコールで比較するのはあまりよくない気がします。 MT4なら大丈夫なんですかね…。

その他の回答 (2)

  • f272
  • ベストアンサー率46% (8627/18450)
回答No.2

if文の dLow = dLowZone の戻り値が0以外ならば真と判断されます。 代入文の戻り値は代入した値そのものです。

回答No.1

'=' は比較ではなく代入演算子です。 代入の結果でdLow が0以外になるとこのif文は成立し、これが含まれる関数の戻り値がtrueになります。

関連するQ&A