- - PR -
If文の表記方法について
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-26 10:06
知ってる人にとっては、すごい簡単な事かも知れませんが・・・
VB.NETで If ("01" = aaa) Or ("11" = aaa) Or ("21" = aaa) Or ("23" = aaa) Then のような同じ変数の比較をorでつなげてるIf文を簡単に書くことはできないのでしょうか? 自分のイメージとしては If ("01" or "11" or "21" or "23") = aaa Then とすれば出来るかなーと思ったのですが、 「Option Strict On で 'String' から 'Long' への暗黙的な変換はできません。」 とエラーになってしまいました。 どなたか簡単な方法を知ってたら教えてください。 | ||||||||||||||||
|
投稿日時: 2007-01-26 10:55
とりあえずな案としては Select Case で。
# もっと考えましょう運動実施中。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||||||
|
投稿日時: 2007-01-26 11:05
Or 演算子を正しく理解していれば、この発想はないでしょう。 この式は、"01" OR "11" というビット演算から始まります。
ただ、相手が文字列なので当然ビット演算はできません。 そもそも、ビット演算が必要な場面ではないので、この書き方はありえないです。 それと、If で判定を書く場合は、Or ではなく、ショートサーキット評価の OrElse を使うべきです。 # リファレンスを読みましょう運動実施中。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2007-01-26 11:18
ぽぴ王子さん返信ありがとうございます
やはり、Select Caseですかねぇ? 前にも同じような事をしようと思ったときはSelect Caseを使ったのですが、 If文でも簡単な書き方があるんじゃないかーと思って投稿してみたんです。 説明不足ですみません。 | ||||||||||||||||
|
投稿日時: 2007-01-26 11:25
じゃんぬねっとさん返信ありがとうございます。
すみません。 たぶん私がビット演算の例文コードをうろ覚えで覚えていたのでこんなコードを書いてしまったのです。
最近、OrElseやAndAlsoを覚えたのですが、昔からの癖でOrやAndを使ってしまいます。 以後、気をつけてます・・・ | ||||||||||||||||
|
投稿日時: 2007-01-26 11:26
If文で1発でかくとしたら、正規表現しかないですかねぇ。
OrElseでつなげて書くのに比べると、かなり速度的に劣りそう。 | ||||||||||||||||
|
投稿日時: 2007-01-26 11:39
それならそうでちゃんと最初に書いておいていただかないと… わざわざ VB.NET のプロジェクトまで作って検証してみた僕の時間は無駄だったというこ とになりますよね。
じゃんぬねっとさんの書き方だと伝わるかな〜?と少し不安に思っていましたが、大丈夫 でしょうか?じゃんぬねっとさんの指摘を正しく認識できているとしたら、こんな返答には ならなそうな気がするのですが。 なぜビット演算の話になったか理解できていらっしゃいます?
なんだか日本語が変ですね。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||||||
|
投稿日時: 2007-01-26 11:55
もう一案。
4個程度ならSwitch関数あたりをつかってSelect文と同じようなことが出来るかな。 |
1|2|3
次のページへ»