比较Select Case(VB.NET)和switch(C#)

1.一次测试一个字面值

Select Case语句:
Select Case itemc
    Case 1
        Response.Write("1")
    Case 2
        Response.Write("2")
    Case 3
        Response.Write("3")
    Case 4
        Response.Write("4")
    Case Else
        Response.Write("other")
End Select

switch语句:
switch (itemc)
{
    case 1:
        Response.Write("1");
        break;
    case 2:
        Response.Write("2");
        break;
    case 3:
        Response.Write("3");
        break;
    case 4:
        Response.Write("4");
        break;
    default:
        Response.Write("other");
        break;
}

说明:switch的每个分支都必须以break(或其他跳转语句)结束,否则将继续执行下一分支的代码,但这在C#中是非法的,这与Select Case不同,Select Case中只要执行了一个分支后就不再执行其他分支!顺便说下,JavaScript的switch语句每个分支也需要break语句,但如果缺少break语句在JavaScript中也不会出错,结果剩下的分支的代码都将被执行!

2.一次测试多个字面值

Select Case语句:
Select Case itemc
    Case 1, 2
        Response.Write("1或2")
    Case 3, 4
        Response.Write("3或4")
    Case Else
        Response.Write("other")
End Select

switch语句:

switch (itemc)
{
    case 1:
    case 2:
        Response.Write("1或2");
        break;
    case 3:
    case 4:
        Response.Write("3或4");
        break;
    default:
        Response.Write("other");
        break;
}

3.复杂的条件

Select Case语句:
Select Case itemc
    Case Is <= 2
        Response.Write("1或2")
    Case Is <= 4
        Response.Write("3或4")
    Case Else
        Response.Write("other")
End Select

switch无法实现!

从上边三个例子可以看出,switch通常用于测试一些离散的值,一次能测试多个值,这和Select Case一样的,但switch不能测试像"小于X"这样的子句,而Select Case可以,这点稍有不同。

评论: 0 | 引用: 0 | 查看次数: 11364
发表评论
登录后再发表评论!