- ベストアンサー
Boolean型変数の値を反転する方法
ご存知の方教えて頂けますか? Boolean型変数の値が True なら False,False なら True に変換したいのですが、現在次のようにcodeを書き、希望した値になります。 Dim bool As Boolean 中略 bool = bool - True このcodeは正しいのでしょうか? 他に ”正しい方法”があるのでしょうか? スミマセン!よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> このcodeは正しいのでしょうか? コードとしては「間違ってはいない」ぐらいでしょうか・・・ VB(VB.NET)の場合、(VB2005のヘルプの「ブール型 (Boolean) (Visual Basic) 」より抜粋) ------------------------------------------------------------ Visual Basic で数値型の値をブール型 (Boolean) に変換すると、 0 は False になり、その他の値はすべて True になります。 Visual Basic でブール型 (Boolean) の値を数値型に変換すると、False は 0 になり、True は -1 になります。 ------------------------------------------------------------- と言う制約がありますから、期待どうりに動作するでしょうけど・・・ bool がFalseなら、 「bool -True」は「0- -1=1」となり、「0以外」なので、Trueになり、 bool がTrueなら、 「bool -True」は「-1- -1= 0」となり、「0」なので、Falseになる・・・ > ”正しい方法” は、やはり、「Not 演算子」による「論理否定」でしょうね。
その他の回答 (2)
- dsuekichi
- ベストアンサー率64% (171/265)
#2です。 追記ですが、VB2005で、「Option Strict On」(暗黙の型変換禁止)の設定をしている場合、 > bool = bool - True は、 > bool = CBool(CShort(bool) - CShort(True)) の様に明示的な型変換を記述しないとエラーになりますので、ご注意。
- hana-hana3
- ベストアンサー率31% (4940/15541)
Dim bool As Boolean bool = Not (bool) MsgBox bool 反転するなら論理演算(NOT)をします。
お礼
ありがとうございます。 勉強になりました。
お礼
ありがとうございます。 勉強になりました。