匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 10 年前

請問程式語言中If else與Select case的差別。

如題,請問程式語言中If else與Select case的差別。

3 個解答

評分
  • coosla
    Lv 6
    10 年前
    最佳解答

    1..就語法來看,IF後面接的是布林值(boolean),Select Case 後面接的大部分是個變數(物件),然後再依據 Case 去判斷這個變數的值或物件屬性條件符合或不符合。

    2..誠如意見所說,簡單的看,IF 就是是非題,Select Case 就是選擇題,但是更進一步看,巢狀的 IF 也可以達到 Select Case 的要求,這兩者怎麼用,端看需求。

    譬如說,我要判斷性別,大部分的人會寫成 IF,因為只有兩種選擇

    If Sex="1" then

     lblSex.Text="男性"

    else

     lblSex.Text="女性"

    End If

    如果我要判斷今天星期幾,那就用 Select Case 比較適合

    Select Case System.DateTime.Now.DayOfWeek

     Case 0

      lblToday.text = "今天星期日"

     Case 1

      lblToday.text = "今天星期一"

     Case 2

      lblToday.text = "今天星期二"

     Case 3

      lblToday.text = "今天星期三"

     Case 4

      lblToday.text = "今天星期四"

     Case 5

      lblToday.text = "今天星期五"

     Case 6

      lblToday.text = "今天星期六"

    End Select

    3.Case 的用法其實還滿多變的,你可以只有針對單值作比較,也可以用逗號隔開,譬如說:

    IF a=1 or a=3 or a=6 or a=10 Then

    .....

    Else

    .....

    End If

    Select Case a

    case 1,2,6,10

    ......

    case else

    .....

    End Case

    是一樣的

    當然,If 和 Select Case 搭配其他的 Function 可以衍生多相當多的用法上面那段IF就可以搭配 Array 作判斷,程式看起來就更簡潔,譬如

    Dim arr_list() as Integer={1,2,6,0}

    If Array.IndexOf(arr_list,a) >= 0 Then

    .....

    Else

    .....

    End If

    如果你還想知道更詳細的差別,我覺得去找微軟的書或是線上Help吧。

    2010-05-28 11:40:22 補充:

    case 1,2,6,10 應為 case 1,3,6,10

    2010-05-28 11:41:21 補充:

    Dim arr_list() as Integer={1,2,6,0}

    應為

    Dim arr_list() as Integer={1,3,6,0}

    參考資料: 自己
    • 登入以對解答發表意見
  • Nona
    Lv 6
    10 年前

    還有Switch和Choice可用,不妨也一起比較看看。

    • 登入以對解答發表意見
  • 10 年前

    把IF當是非題

    把SELECT CASE當選擇題

    • 登入以對解答發表意見
還有問題?馬上發問,尋求解答。