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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 忆梦追风 中级黑马   /  2014-9-1 22:00  /  1345 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

switch
格式:
int x = 10;
switch (表达式){//byte,short,int,char,String 枚举

case 表达式里对应的值:
  执行语句;
//break;
case 表达式里对应的值:
  执行语句;
break;
......
default:
  执行语句;
break;//最后一句的break可写可不写,因为程序已经执行到了末尾
}
举例:
String name = "张三";
  String gender = "先生";
  switch (gender){
  case "先生":
   System.out.println(name + "是一位" + gender + "喜欢吃饭睡觉打dota");
  //break;
  case "女士":
   System.out.println(name + "是一位" + gender + "逛街购物美容");
  break;
  default:
   System.out.println(name + "是一位" + gender + "打雌性激素保持美貌容颜");
  
  }
重点:switch 结束只有两种情况
1,当程序执行过程中遇到了break
2,当程序执行到了末尾处
应用 switch需要注意的两个细节
1,当switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里
的执行语句,不会再对case值进行判断,应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break
例如:我们做一年有四季的例子:
int month = 4;
switch (month){
case 3:
case 4:
case 5:
  System.out.println(month+"月是春季");
break;
case 6:
case 7:
case 8:
  System.out.println(month+"月是夏季");
break;
case 9:
case 10:
case 11:
  System.out.println(month+"月是秋季");
break;
case 12:
case 1:
case 2:
  System.out.println(month+"月是冬季");
break;
default:
  System.out.println(month+"月没有这样的月份")

}//上述例子就是三个case里面的值输出都一样的,所以我们省略了break;这样会少写几行代码,提高效率

2,当我们把 default 不是写在最后,default 里面还没有写break的是时候,switch里的表达式与各个case里
的值都不匹配的时候,上面两个条件同时满足的话,程序在default里执行完了还会再去执行case里的语句
例如:
int x = 3;
switch (x){
case 4:
  System.out.print("a");
break;
default:
  System.out.print("b");//当程序执行到了default但是他没有break,下面的case值不再判断,程序继续执行
case 5:
  System.out.print("c");
case 6:
  System.out.print("d");
//break;//遇到break,程序跳出
case 7:
  System.out.print("e");
}

2 个回复

倒序浏览
感谢分享  值得收藏
回复 使用道具 举报
。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马