百度空间 | 百度首页 
               
 
查看文章
 
SELECT CASE补遗
2007-02-12 09:09
会员们讨论这个问题有一段时间了,因为特别写这篇教程将SELECT CASE语句的几种用法再补讲一下。

    在教程中我们已经学习了SELECT CASE语句的基本用法:

code:

select case 条件变量名
  case 值1
    符合值1执行的语句
  。。。
  case else 
    如果上面的条件都不符合执行的语句
end select

   后来看到几个会员在讨论另一种SELECT CASE语句的用法,这里特别补充一下它,这种用法其实也是上面用法的一种特殊应用,也不能算是新的用法,它的用法是这样的:

code:

select case true/false
  case 表达式1
    符合值1执行的语句
  。。。
  case else 
    如果上面的条件都不符合执行的语句
end select


说到这里,就得谈谈SELECT语句的执行原理了。这里给出SELECT CASE语句比较完全的语法结构,大家可以和以上两种进行比较:

code:

select case 表达式
  case 表达式1,表达式2 ...
    如果select case 后所跟的变量或表达式的值与上面CASE后面的表达式的值任何一个匹配,就执行这里的语句
  case ...
  case else
    如果上面的CASE中的值全部都不能匹配,那么执行这里的语句
end select

那么,这其中所说的表达式,可以是一个运算的式子,也可以是一个变量名,或是一个数值。而我们上面所提到的到SELECT CASE TRUE/FALSE 用法,就是SELECT CASE用法中的一个特例。

SELECT CASE语句,首先运算 SELECT CASE后面的这个表达式,得出值,我们用A表式,然后逐个运算每个CASE后面的表达式,我们用Bx表式,如果发现A的值和其中某个Bx的值相等了,那么就执行这条CASE语句到下条CASE语句或者是END SELECT语句之前的代码,如果A和所有的Bx都不匹配,并且又有CASE ELSE 语句的话,就会执行CASE ELSE语句后的代码段。

需要注意的是,在CASE语句中,我们可以将需要匹配的多个表达式用逗号隔开。

下面通过几个典型的例子来讲解这些使用形式:

1.普通形式:请参考VIP教程:其它分支语句

2.多值匹配:

code:

dim a
a=5
select case a
  case 5
    response.write "优秀"
  case 4
    response.write "良好"
  case 3
    response.write "及格"
  case 2,1,0
    response.write "不及格"
  case else
    response.write "错误的输入值"
end select


看上面第四个CASE,我们设置了三个值,只要是变量A的值与这三个中的任意一个匹配就会执行打印不及格的代码。(需要说明的是,有些会员有VB的基础,可能会尝试使用 case 0 to 2 这样的用法,这在VBSCRIPT中是行不通的)

3.表达式值匹配

code:
dim a
a=100
select case a/20
  case 10-5,6,7+1
    response.write "5 or 6 or 8"
  case 11+7
    response.write 18
  case else
    response.write 0
end select


看上面,我们在SELECT CASE后面使用的是一个表达式,它得出的结果是 5 ,也就是说,只要下面哪个CASE语句中的值与5匹配(即相等)就会执行相应的代码。在第一个CASE中我们也使用了表达式,而且是多个,用逗号隔开了。

4.特殊的表达式值匹配

code:
dim a
a=5
select case true
  case a=5
    response.write 5
  case a<5 or a>5
    response.write "a<5 or a>5"
end select

举这个例子,只是为了说明这个SELECT CASE TRUE/FALSE是SELECT语句的一个使用特例,并不是一种SELECT语句的语法,因为例4和例3的唯一区别就是于例四我们使用了一个关键字TRUE。只要是其中某个CASE语句后的表达式运算结果等于TRUE,相应的代码就会被执行。
另外,这个例子中我们还使用了逻辑运算符。

大家读懂上面上面那段红字后将以上四个例子逐一模拟执行一次,就可以很容易的理解SELECT语句的用法了。

说明:本文中所举例子并不一定有实际意义,纯粹用于教程,因为只需要从SELECT语句的用法上考虑它们即可。


类别:web编程技术 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu