switch使用需要注意的几点

switch的语法格式:

		switch (整型或者字符串类型的变量) {
		case 变量可能值1:
			分支一;
			break;
		case 变量可能值2:
			break;
		default:
			最后分支;
			break;
		}

1、switch 后面括号里的参数类型

在1.7版本之前,这个参数必须是int类型或者可以隐式转换为int类型的变量(例如byte、short、char)以及他们的包装类(Integer等)。

在1.7版本之后可以支持string类型的变量。

常见面试题会问到string和long是否可以作为switch的开关参数。long是不可以转换为int类型的,所以long类型的变量不可以。

2、case之后可以是一个直接的常量值,例如1、2、3、4……也可以是一个使用常量计算式如2+2等,但不能是变量或者带有变量的表达式,如2*a

另外,在case与常量值之后要有一个:,注意不要疏忽了

3、break的作用

break是跳出当前swtch的{},break可以使代码执行完switch的一个分支后结束switch。

如果case后面的分支代码不加break,那么程序执行完该分支后会继续执行下一分支内的代码直到遇见break或者switch执行完。

例如:

public class SwitchDemo {
	public static void main(String[] args) {
		int i=3;

		switch (i) {
		case 1:
			System.out.println("今天是星期一");
			break;
		case 2:
			System.out.println("今天是星期二");
			break;
		case 3:
			System.out.println("今天是星期三");
			break;
		case 4:
			System.out.println("今天是星期四");
			break;
		case 5:
			System.out.println("今天是星期五");
			break;
		case 6:
			System.out.println("今天是星期六");
			break;
		default:
			System.out.println("今天是星期日");
			break;
		}
	}
}

执行后输出的肯定是“今天是星期三”,但是我们将分支3中的break注释掉之后就会输出:

今天是星期三

今天是星期四

当我们将所有的break注释掉之后会输出:

今天是星期三

今天是星期四

今天是星期五

今天是星期六

今天是星期日

4、default是可选的,就是当所有的分支都不匹配的时候,程序会执行default内的代码,如果没有,那就不执行呗。

时间: 2024-10-15 12:10:01

switch使用需要注意的几点的相关文章

选择结构if语句和switch语句的区别

1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if(比较表达式2) { 语句体2; }else if(比较表达式3) { 语句体3; } ... else { 语句体n+1; } B:执行流程: 首先计算比较表达式1看其返回值是true还是false, 如果是true,就执行语句体1,if语句结束. 如果是false,接着计算比较表达式2看其返回值是true还是false, 如果是true,就执行语句体2,if语句结束. 如果是fals

java基础之switch

switch 语句由一个控制表达式和多个case标签组成. switch 控制表达式支持的类型有byte.short.char.int.enum(Java 5).String(Java 7). switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高. default在当前switch找不到匹配的case时执行.default并不是必须的. 一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break. sw

蓝鸥Unity开发基础——Switch语句学习笔记

一.Switch语法 属于多分支语句,通过判断表达式的值,来决定执行哪个分支 Break用于结束某个case,然后执行switch之外的语句 Switch-开关:case-情况开关决定发生的情况 二.Switch基本语法 Switch(表达式){ Case 值1: 语句1 Break: Case 值2: 语句2 Break: -- Case 值n: 语句n Break: Default: 语句 Break: } 三.注意事项 整个defaul语句都可以舍掉,default语句最多只能由一个 Sw

JAVA之Switch语句

switch case语句是用来判断case后面的表达式是否与switch的表达式一致,符合的话就执行case语句,不符合则break跳出.而default是当没有符合case的条件下执行的(它不用break跳出的),defaul相当于”第三种情况“,在switch case语句中也可以不使用. public class SwitchDemo { public static void main(String[] args) { // TODO Auto-generated method stub

switch case 与 if

case 在编程中偶尔使用到switch case语句,对于case语句的处理,出现了两种错误,现总结如下: 1 case后必须是常量,不能使用‘<’或‘>’这种逻辑运算 2 case后如果是‘||’或者‘&&’逻辑运算,则实际是1或者0 #include <iostream> using namespace std; int main(int argc, char * argv[]) { int i; cin>>i; switch(i) { case

数据字典+匿名委托模拟switch/case功能

基本思想每个case的选择值作为键,处理过程做成函数委托存放进数据字典.用的时候根据之调用.下面上代码 封装的FuncSwitcher类 using System; using System.Collections.Generic; namespace Test {     class FuncSwitcher<T>     {         int count;         Dictionary<T, Delegate> FuncGather;         Delega

Swift语言中的switch语句的妙用

Swift中的switch语句的类另用法: // 强大的switch语句 var a:Int = 100 switch a { case a where a < 0: println("Negative") case a where a == 0: println("Zero") case a where a > 0: println("Positive") default: println("Unknow") }

Adding an On/Off switch to your Raspberry Pi

http://www.raspberry-pi-geek.com/Archive/2013/01/Adding-an-On-Off-switch-to-your-Raspberry-Pi#article_f5 Which Switch? Aaron Shaw Pulling the plug on your Pi without an orderly shutdown can corrupt the SD card. Also, many users prefer a convenient sw

switch使用时有哪些注意事项

switch语句用于多分支选择,在使用switch(expr)的时候,expr只能是一个枚举常量(内部也是由整型或字符类型实现)或一个整数表达式,其中整数表达式可以是基本类型int或其对应的包装类Integer,当然也包括不同的长度整型,例如short.由于byte.short和char都能够被隐式地转换为int类型,因此这些类型以及它们对应的包装类型都可以作为switch的表达式.但是,long.float.double.String类型由于不能够隐式地转换为int类型,因此它们不能被用作sw

pip 警告!The default format will switch to columns in the future

pip警告! DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. pip升级到9.0.1后 查看pip.list 出现的警告