Java switch语句

1.1 switch语法规则

  1. 表达式expr的值必须是下述几种类型之一:

     byte、short、int、char、enum(枚举);java7之后可以是String。
    
  2. case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围

  3. 所有case子句中的值应是不同的,否则会编译出错;

  4. default子句是可选的(不是必须的)

  5. break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去

1.2语法格式

   switch(a){ // a = 2
           // 情况
   		case 1:
   			statement1;
   			break;
   		case 2:
   			statement2;
   			break;
   			… …
   		case constN:
  			statementN;
   			break;
   		default:
   			statement_dafault;
   			break;
   	} 

1.3 执行顺序:

 1 所有的 case 都不满足需求的时候  执行default中的内容
 2 break 帮助跳出switch 语句, 如果执行过程中 没有遇到break 继续向下执行直到遇到break为止

1.4 练习:

练习一: 简单实现switch语句

	   int i = 1;
	   switch(i){
   			case 1:
   				System.out.println("Hello World!");
   				break;
   			case 2:
   				System.out.println("Hello World!2");
   			case 3:
   				System.out.println("Hello World3");
   				break;
   			default:
   				System.out.println("Haaaa");
   				break;
   		}

练习二: 判断 春夏秋冬

Scanner sc = new Scanner(System.in);
   		String str = sc.next();
   		switch(str){
   			case "春天":
   				System.out.println("春暖花开");
   				break;
   			case "夏天":
   				System.out.println("闷热");
   				break;
   			case "秋天":
   				System.out.println("秋高气爽");
   				break;
   			case "冬天":
   				System.out.println("滴水成冰");
   				break;
   			default:
   				System.out.println("火星的");
   				break;
   		}

练习三: 需求: 利用switch实现一个计算器操作

		Scanner  sc = new Scanner(System.in);
   		System.out.println("请输入第一个操作数:");
   		int a = sc.nextInt();
   		System.out.println("请输入运算符");
   		String str = sc.next();
   		System.out.println("请输入第二个操作:");
   		int	b = sc.nextInt();
   		switch(str){
   			case "+":
   				System.out.println(a+"+"+b+"="+(a+b));
   				break;
   			case "-":
   				System.out.println(a+"-"+b+"="+(a-b));
   				break;
   			case "*":
   				System.out.println(a+""+b+"="+(ab));
   				break;
   			case "/":
   				System.out.println(a+"/"+b+"="+(a/b));
   				break;
   			case "%":
   				System.out.println(a+"%"+b+"="+(a%b));
   				break;
   			}

1.5 特殊用法 :case穿透

case穿透: 产生这种现象的原因:由于某个case语句中缺少或者漏写break语句所导致的结果.

// 需求:  打印输出指定的月份的天数

   		Scanner sc = new Scanner(System.in);

   		int month = sc.nextInt();

   		switch(month){

   			case 1:	

   			case 3:				

   			case 5:				

   			case 7:				

   			case 8:				

   			case 10:				

   			case 12:

   				System.out.println("31天");

   				break;

   			case 2:

   				System.out.println("28天");

   				break;

   			case 4:				

   			case 6:				

   			case 9:				

   			case 11:

   				System.out.println("30天");

   				break;		

   		}

   		System.out.println("Hello World!");

   	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值