- ベストアンサー
return trueの対象がint型のソース
MT4のプログラムを勉強中なのですが、 if ( dLow = dLowZone ) { return true; } というソースが出てました。 if文の中に出てくる dLow はint型の変数で dLowZone はdouble型の変数なのですが、この場合、return true; が実行される場合のtrue は何に対して返ってくるのでしょうか。
- みんなの回答 (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以外ならば真と判断されます。 代入文の戻り値は代入した値そのものです。
- redslove10
- ベストアンサー率41% (408/992)
回答No.1
'=' は比較ではなく代入演算子です。 代入の結果でdLow が0以外になるとこのif文は成立し、これが含まれる関数の戻り値がtrueになります。