switch...case用法
来源:互联网 发布:飞天侠淘宝客源码 编辑:程序博客网 时间:2024/06/17 22:48
switch-case语句的标准用法:
switch(表达式){ case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; ...... default: 语句; break; }例如
int i=3; switch(i) { case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; default: System.out.println("default"); break; }
输出结果是:3
其执行流程为:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句,然后退出switch语句,程序流程转向开关语句的下一个语句。
注意:
1、default就是如果没有符合的case就执行它,default并不是必须的。
2、case后的语句可以不用大括号.
3、switch语句的判断条件可以接受int、byte、char、short,不能接受其他类型。
原因是在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
4、一旦case匹配,如果没有break,就会顺序执行后面的程序代码,而不管后面的case的表达式是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句。所以,通常来讲,break是必须写的。否则如下:public class Test7 { public static void main(String[] args) { int i=5; switch(i) { case 1: System.out.println("one"); case 10: System.out.println("ten"); case 5: System.out.println("five"); case 3: System.out.println("three"); default: System.out.println("other"); } }}
结果是:
five
three
other
特殊使用:
特殊1:不是完全没有break
int year=2005;int month=3;int day;switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 2: day=28; break; case 4: case 6: case 9: case 11: day=30; break;}
结果是:day=31
特殊2:default的位置
int i=1;switch(i){ case 1: System.out.println(1); default: System.out.println("default"); case 2: System.out.println(2); break; case 3: System.out.println(3); break;}
结果是:1
default
2
0 0
- switch-case语句用法
- switch-case的用法
- switch-case语句用法
- switch-case语句用法
- switch-case语句用法
- switch-case语句用法
- switch-case语句用法
- switch-case语句用法
- switch...case用法
- switch...case...的用法
- switch case用法
- switch case 的 一种用法
- switch-case语句用法汇总
- Java switch-case语句用法
- Java switch-case语句用法
- Java switch-case语句用法
- switch()case的用法
- Java switch-case语句用法
- C语言前置++,--,后置++,--的介绍
- Win7+vs2010下安装boost_1_46_1库
- JAVA 基础知识
- Struts2:Result类型
- 《数据结构》复习笔记--二叉树2
- switch...case用法
- UVa 202 Repeating Decimals(模拟)
- 各平台的延时函数
- 【iOS7开发快速入门】代码示例3-1
- Android数据存储和IO
- Sed - Workflow
- 蓝桥杯:标题:剪格子
- 全新安装Mac OSX 开发者环境 同时使用homebrew搭建 PHP,Nginx ,MySQL,Redis,Memcache ... ... (LNMP开发环境)
- Android—如何使用Eclipse svn插件管理Android项目