2011-01-17 9 views
0

これはおそらく基本的な質問ではありませんが、どこでも答えが見つからないようです。なぜfunc1の結果はFalseを返し、func2はTrueを返しますか?私が行った他のすべてのテストでは、整数1はブール値trueに、0はfalseに変換されます。私はちょうど私があなたが「戻るrtnValue = 1」で何をしていると信じている1または0boolean VB式が整数1に対してfalseを返す

Public Function func1() As Boolean 
    Dim rtnValue As Integer = 0 
    Return rtnValue = 1 

End Function 


Public Function func2() As Boolean 
    Dim rtnValue As Integer = 0 
    Return rtnValue = 0 

End Function 
+0

=演算子は、代入文と式の等価演算子の両方で使用できます。あなたは表現のバージョンを取得しています。 1 = 0はFalseです。 –

答えて

1

にrtnValueを設定した場合、[OK]を作品は実際には、その後、1にrtnValueを設定していないrtnValueが1に等しいかどうかを比較していますrtnValueを返します。

0

式チェックを再試行しています。したがっての場合が実際に0なのでtrueと報告されます。

1

危険なほど混乱しているタイプです。 VBでは、整数1は整数1であり、ブール値trueではありません。整数0と真偽値も同じです。

また、func1()はrtnValueが1に等しいかどうかをチェックしています。そうであれば、関数はtrueを返します。そうでない場合、falseを返します。あなたの場合、rtnValueを0に設定し、0は1と等しくないので、falseを返します。

rtnValueが0であるため、func2()はtrueを返します。これはテストしているものです。

+0

C型プログラミング言語の場合、ゼロを引き出すものはすべて偽で、ゼロ以外のものは真です。 –

関連する問題