2.5.3 switch语句

2.5.3 switch语句

多分支除了前面讲的 if 嵌套,其实还有种方法,用 switch 语句。
例:在程序中使用数字1~7表示星期一到星期天,如果想根据输入的数字输出对应中文格式的星期值:

  • 如果等于1,则输出星期一
  • 如果等于2,则输出星期二
  • 如果等于3,则输出星期三
  • 如果等于4,则输出星期四
  • 如果等于5,则输出星期五
  • 如果等于6,则输出星期六
  • 如果等于7,则输出星期天

switch语句的格式:
switch(表达式) {
case 值1: 语句体1; break;
case 值2: 语句体2; break;
… …
case 值n: 语句体n; break;
default:语句体n+1;
}

switch后面小括号里的表达式,一般是一个整数或字符,这个值会逐个与 case 后面的常量值进行比较,如果相等,则执行那个 case 的冒号后面的语句,直到遇到 break 就跳出switch结构;如果不相等,就继续与下一个 case比较;如果直到最后都没有相等的,就执行 default 后面的语句。
在这里插入图片描述

Scanner sc=new Scanner(System.in);
System.out.print("请输入一个1-7的整数:");
int num=sc.nextInt();
switch(num) {
	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;
	case 7:System.out.println("星期天");break;
	default:System.out.println("输入错误!");
}

注意:

  1. 用于匹配的表达式的数据类型可以是:byte、short、int或者char。从 Java SE 7 开始,switch 支持字符串 String 类型了。
  2. switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
  3. case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  4. 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
  5. 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
  6. switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

有些时候,也会故意不写 break来达成一些目的。比如上面的例子,如果希望输入1-5时,输出“工作日”,输入6-7时,输出“休息日”,那么程序可以修改成:

Scanner sc=new Scanner(System.in);
System.out.print("请输入一个1-7的整数:");
int num=sc.nextInt();
switch(num) {
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:System.out.println("工作日");break;
	case 6:
	case 7:System.out.println("休息日");break;
	default:System.out.println("输入错误!");
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值