web-dev-qa-db-ja.com

Visual Basic 6.0のケースステートメント

この小さなコードは起動して正しい変数を提供することになっていますが、変数「numericDay」の内容に関係なく、変数「suffix」は「th」を提供します。 「numericDayの変更の値が両方とも文字列変数である場合、なぜ変更されないのかわかりません。

    Select Case numericDay
            Case numericDay = "1" Or "21" Or "31"
                 suffix = "st"
            Case numericDay = "2" Or "22"
                 suffix = "nd"
            Case numericDay = "3" Or "23"
                 suffix = "rd"
            Case Else
             suffix = "th"

    End Select
12
Joe Winfield

選択内容を誤って記述しました。以下を試してください:

    Select Case numericDay
            Case "1", "21", "31"
                 suffix = "st"
            Case "2", "22"
                 suffix = "nd"
            Case "3", "23"
                 suffix = "rd"
            Case Else
                 suffix = "th"
    End Select

今後の参照用: http://www.vb6.us/tutorials/learn-if-else-and-select-statements-vb6

31
nybbler

msdn によると、次のように書かれているはずです。

Select Case numericDay
        Case "1", "21", "31"
             suffix = "st"
        Case "2", "22"
             suffix = "nd"
        Case "3", "23"
             suffix = "rd"
        Case Else
         suffix = "th"
End Select

"2" Or "22"は、バイト単位で、または22に対応する2と22で実行されます。

5
belgther

選択内容を誤って記述しました。以下を試してください

例:入力された番号に従って日を表示します。

public function day_display(day as Integer) as String
   select case day
        case 1: day_display = "Sunday"
        case 2: day_display = "Monday"
        case 3: day_display = "Tuesday"
        case 4: day_display = "Wednesday"
        case 5: day_display = "Thursday"
        case 6: day_display = "Friday"
        case 7: day_display = "Saturday"
        case else: day_display = "Wrong entry."
   end select
end function   

day_display(1)は「日曜日」を返します

0
Codemaker