switch ( 表达式 ){? ? // 作用在表达式的结果上????????case 常量 1 :? ? // 如果表达式的结果为常量 1 ,表示该开关被打开,那么代码块 1 将被执行????????????????//代码块1????????????????break ;?? // 表示开关已经做完事情,跳出 switch????????case 常量 2 :?? // 如果表达式的结果为常量 2 ,表示该开关被打开,那么代码块 2 将被执行????????????????//代码块2????????????????break ;?? // 表示开关已经做完事情,跳出 switch????????case 常量 3 :?? // 如果表达式的结果为常量 3 ,表示该开关被打开,那么代码块 3 将被执行????????????????//代码块3????????????????break ;?? // 表示开关已经做完事情,跳出 switch????????default :?? // 如果表达式的结果不在常量 1 、常量 2 、常量 3 中,表示该开关被打开,那么代码块 4 将被执行????????????????//代码块4????????????????break ;?? // 表示开关已经做完事情,跳出 switch}
byte? ?short? ?int? ?char? ? Enum? ? String
public class Example8 {????????public static void main ( String [] args ) {????????????????Scanner sc = new Scanner ( System . in );????????????????System . out . println ( " 请输入当前薪资: " );????????????????int salary = sc . nextInt ();????????????????System . out . println ( " 请输入职位级别: " );????????????????int level = sc . nextInt ();????????????????switch ( level ){????????????????????????case 1 :????????????????????????????????salary += 500 ;????????????????????????????????break ;????????????????????????case 2 :????????????????????????????????salary += 800 ;????????????????????????????????break ;????????????????????????case 3 :????????????????????????????????salary += 1200 ;????????????????????????????????break ;????????????????????????case 4 :????????????????????????????????salary += 2000 ;????????????????????????????????break ;????????????????}????????????????System . out . println ( " 年终调薪后薪资为: " + salary );????????}}
//case 中没有 break 语句。int level = 2 ;switch ( level ){ //switch 作用在 level 上,而 level 的值是 2 ,因此会执行 case2????????case 1 :????????????????salary += 500 ;????????????????//break;????????case 2 :????????????????salary += 800 ; // 得到执行,因为该 case 中没有 break 语句,因此会一次往下执行????????????????//break;????????case 3 :????????????????salary += 1200 ; // 得到执行????????????????//break;????????case 4 :????????????????salary += 2000 ; // 得到执行????????????????//break;}System . out . println ( " 年终调薪后的薪资为: " + salary );//case 后面的常量重复,编译时会报异常int level = 2 ;switch ( level ){ //switch 作用在 level 上,而 level 的值是 2 ,因此会执行 case2????????case 1 :????????????????salary += 500 ;????????????????break ;????????case 2 : // 重复的 case????????????????salary += 800 ;????????????????break ;????????case 2 : // 重复的 case????????????????salary += 1200 ;????????????????break ;????????case 4 :????????????????salary += 2000 ;????????????????break ;}System . out . println ( " 年终调薪后的薪资为: " + salary );