• 締切済み

VB6 case文について

select case a case "1" and "2"    処理 case "3"    処理 end select という記述が出来るのですが、case "1" and "2" という記述は 変数a の値がどうなったとき条件をみたすのでしょうか? 初心者でして小も無い質問かもしれませんがよろしくお願いいたします。

みんなの回答

回答No.1

VB6は文字列と数値の扱いが非常に曖昧で Stringの"1"がIntegerの1に勝手に自動変換されます Stringの"2"がIntegerの2に勝手に自動変換されます よって Case "1" and "2" は Case 1 and 2 であり,わかりやすく括弧を使うと Case (1 and 2) となります ビット演算が行われて http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97 Case 0 と同等になります。 ちなみにVB.NETではOption Strict Onを使うと 自動変換が行われるコードはそもそもコンパイルできなくなります(推奨) 'Case "1" and "2" '駄目 Case 1 and 2 'OK