case细节

林继 PHP 技术 9,751 共写了554个字 (2005-04-08 16:16:25) 2条评论 打印 扫描二维码 百度已收录

From:http://www.flashot.com/blog/index.php?job=art&articleid=a_20050403_221318

一直是书上传统的
switch(n)
{
  case (1):doSth;break;
  case (2):doSth:break;
  case (3):doSth;break;
  default……
}
今天突然看到这样写的:
switch(n)
{
  case (1):
  case (2):
  case (3):
  case (4):doSth;break;
  case (5):doSth;break;
  default……
}
一开始还真没有理解,
后来想通了,
就像
if(n==1 || n==2 || n ==3 || n== 4)
{
  doSth;
  return;
}
一样,就是执行一个多重判定条件的结构,
因为空语句在switch结构中就是进入下一个case语句,
而switch的代码含义就是封装了一个goto结构,
当n匹配到一者时,他会直接跳至那个代码行执行,
但是假如没有break的话,
他是不会停止执行下面的代码的,
case本身只是一个行标记功能,
而没有意义,
当swiych过后,case就失去了应有的功能而相当于不存在了,
所以,可以代码会一直执行到下面一个break出现才跳出这个代码封装。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

2条评论
  • percy

    2006年12月21日 3:24:32

    if(n==1 && n==2 && n ==3 && n== 4)
    应该是||的关系吧

    1. 林继

      2006年12月21日 10:57:57

      谢谢提醒,已经修改

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >