查看文章 |
编程基础讲解(switch的应用)
2009-08-23 18:03
除了if.....else语句外还有switch语句也是可以拿来实现选择的.switch语句是多分支选择语句.if语句只有2个分支可以选择,实际上我们常常需要用到多分支的选择.例如学生的成绩有90以上为A,80以上为B,70以上为C等等.当然如果用嵌套if语句也是可以实现的,但是相对来说就太麻烦了.if语句的嵌套层数多,程序冗长而且读起来很难理解. as提供了switch语句来解决这一难题.一般形式如下: switch(表达式) { case 常量表达式1:语句1; case 常量表达式2:语句2; case 常量表达式n:语句n; default: 语句n+1; } 说明一下:1) switch后面的表达式,允许为任何类型(整型,字符串等等) 2) 当表达式的值和后面花括号里某一个case后面的常量表达式的值相等时,就执行case后面的语句,若所有case后面的常量表达式的值都没有和switch后的表达式的值相匹配,就执行default后面的语句. 3) 每一个case后面的常量表达式的值必须互不相同,否则就会出现自相矛盾的现象(对表达式的同一个值,有两种或多种执行方案). 4) 各个case和default的出现次序不影响执行结果.例如可先出现default再出现case 5) 执行完一个case分支后,流程控制转移到下一个case继续执行,case常量表达式只是起语句标号的作用,并不是在该处进行条件判断,在执行switch语句时,根据switch后面的表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断. 因此应该在执行完一个case分支后,使流程跳出,switch结构,即中止switch语句的执行.可以用break语句来达到此目的.如下: switch(表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; case 常量表达式n: 语句n; break; default: 语句n+1; } 最后一个流程default不可以+break语句. 在case后面虽然包含一个以上的执行语句,但可以不必用花括号括起来,会自动顺序执行笨case后的所有语句,当然加上花括号更好了. 6) 多个case可以共用一组执行程序: : : case ’A’ : case ’B’ : case ’C’ : Stop(); : switch后面的表达式的值为ABC时都执行Stop语句. 先讲这些要去上课了,等上完课再来详细解释这些.大家先看看能否理解. 现在用实例来说明switch语句,下面这个程序是显示今天是星期几. 新建一文件,写一动态文本,并命名day. 新建一层,在帧上添加如下语句: mydate = new Date(); //创建一个新的日期对象. a = mydate.getDay(); //获取本地日期是星期几.并赋值给变量a switch (a) { case 0 : //a值为0的话,执行语句day="星期天",执行后跳出switch day = "星期天"; 结构. break; case 1 : //道理相同! day = "星期一"; break; case 2 : day = "星期二"; break; case 3 : day = "星期三"; break; case 4 : day = "星期四"; break; case 5 : day = "星期五"; break; case 6 : day = "星期六"; break; }测试一下看看! 测试时,动态文本显示为星期一,date.getday()函数是按照本地时间返回指定 Date 对象中表示周几的值(0 代表星期日,1 代表星期一,依此类推)。 这就是switch语句的应用.大家是否明白了呢? |
最近读者: