A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭佳佳 中级黑马   /  2012-9-6 20:17  /  1650 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

case 不一定后面一定跟break,也可以多个case跟一个 break?这里面有什么规则么

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

7 个回复

倒序浏览
如果多个case共用一个语句的话,可以在最后一个case后面加一个break就可以了,否则每一个case后面都要跟一个break

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
1、正常情况下:
  1. switch(DataType var)
  2. {
  3.         case var1:
  4.                 //----
  5.                 break;
  6.         case var2:
  7.                 //----
  8.                 break;
  9.         case var3:
  10.                 //----
  11.                 break;
  12.         ……
  13.         default:
  14.                 break;
  15.        
  16. }
复制代码
//==========其中上面每一个case分支对应一个处理;并且case分支的var不可以一样;

2、特殊情况
(1)、(由于switch--case能处理的是对于离散型变量---假如多个变量的处理方法一样的话,就可以这么写)
  1. switch(DataType var)
  2. {
  3.         case var1:
  4.         case var2:
  5.         case var3:
  6.                 //----
  7.                 break;
  8.         case var4:
  9.                 //----
  10.                 break;
  11.         case var5:
  12.                 //----
  13.                 break;
  14.         ……
  15.         default:
  16.                 break;
  17.        
  18. }
复制代码
//======这样在var为var1、var2、var3的时候处理方法都是一样的;
(2)、其实对于break不一定是必须的(例如下面)
  1. switch(DataType var)
  2. {
  3.         case var1:
  4.                 {
  5.                         //---处理方法---
  6.                         return;
  7.                 }
  8.         case var2:
  9.                 //----
  10.                 break;

  11.         ……
  12.         default:
  13.                 break;
  14.        
  15. }
复制代码
//=======假如满足分支var1的时候,程序就直接return了,这样也是允许的;

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
在switch中case是没有顺序的,要先从case开始执行,最后执行default
case A:
       .......
       break;
case B:
       .......
       break;
------------------------------------也可以这样
case B:
       .......
       break;
case A:
       .......
       break;
switch的结束有两种方式一个是执行到break,一个是执行到语句的结尾。
switch如果条件都不符合,则执行default,但是default在前,则会再次执行下边的语句,而不再判断case直到碰见break。

多个case可以对应一个条件执行语句。
例如:
case A :
case B :
case C:
........
       .....................
       break;
..........................................

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
额,一般是这几个case的操作情况相同的时候这么做。
只要跟同一个break的几个case后面(除了离break最近的那个),都没有独立的执行语句就可以,不然会报错

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
回答的都不错啊,很给力,谢谢你们了
回复 使用道具 举报
1. switch(i)
    case 1:
    case 2:
    //
    break;
2. C#中的break不写是不行的,除了合并case情况。
回复 使用道具 举报
对,一般是这几个case的情况相同的时候会这么写。
但case情况(表达式值)不同时,就要在每个后加 break
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马