zoukankan      html  css  js  c++  java
  • Java之switch分支结构基本使用

    switch 分支结构

    1. 基本语法

    在这里插入图片描述

    2. 流程图

    1. 画出 swtich 出流程
    2. 案例说明流程图
      在这里插入图片描述

    3. 快速入门

    • 案例:Switch01.java
      请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g
      a 表示星期一,b 表示星期二 …
      根据用户的输入显示相应的信息.要求使用 switch 语句完成
      代码:
    	/*
    	案例:Switch01.java
    	请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g  
    	a表示星期一,b表示星期二 …  
    	根据用户的输入显示相应的信息.要求使用 switch 语句完成
    	
    	思路分析
    	1. 接收一个字符 , 创建Scanner对象
    	2. 使用switch 来完成匹配,并输出对应信息
    	代码
    	
    	 */
    	Scanner myScanner = new Scanner(System.in);
    	System.out.println("请输入一个字符(a-g)");
    	char c1 = myScanner.next().charAt(0);//
    	//在java中,只要是有值返回,就是一个表达式
    	switch(c1) {
    		case 'a' : 
    			System.out.println("今天星期一,猴子穿新衣");
    			break;
    		case 'b' : 
    			System.out.println("今天星期二,猴子当小二");
    			break;
    		case 'c' : 
    			System.out.println("今天星期三,猴子爬雪山..");
    			break;
    		//.....
    		default:
    			System.out.println("你输入的字符不正确,没有匹配的");
    	
    	}
    	
    	System.out.println("退出了switch ,继续执行程序");
    

    在这里插入图片描述

    4. switch 注意事项和细节讨论

    在这里插入图片描述

    	//细节1
    	//表达式数据类型,应和case 后的常量类型一致,
    	//或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是 int
    	
    	//细节2
    	//switch(表达式)中表达式的返回值必须是:
    	//(byte,short,int,char,enum[枚举],String)
    
    	//细节3
    	//case子句中的值必须是常量(1,'a')或者是常量表达式,而不能是变量
    	//
    	//细节4
    	//default子句是可选的,当没有匹配的case时,执行default
    	//如果没有default 子句,有没有匹配任何常量,则没有输出
    	//
    	//细节5
    	//break语句用来在执行完一个case分支后使程序跳出switch语句块;
    	//如果没有写break,程序会顺序执行到switch结尾,除非执行到break
    	char c = 'b';
    	char c2 = 'c';
    	switch(c) {
    		case 'a' :
    			System.out.println("ok1");
    			break;
    		case 'b'  :
    			System.out.println("ok2");
    			break;
    		default :
    			System.out.println("ok3");
    	}
    
    	System.out.println("退出了switch,继续执行..");
    

    在这里插入图片描述

    • 把上面的case b中的 break 都去掉,会都执行下面输出语句,不会跳出来。
      在这里插入图片描述

    5. switch 课堂练习

    SwitchExercise.java

    1. 使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出 “other”。
    	//使用 switch 把小写类型的 
    	//char型转为大写(键盘输入)。只转换 a->A, b->B, c, d, e. 
    	//其它的输出 "other"。
    	Scanner sc = new Scanner(System.in);
    	System.out.println("请输入a-e");
    	char c1 = sc.next().charAt(0);
    	switch(c1) {
    		case 'a' :
    			System.out.println("A");
    			break;
    		case 'b' :
    			System.out.println("B");
    			break;
    		case 'c' :
    			System.out.println("C");
    			break;
    		case 'd' :
    			System.out.println("D");
    			break;
    		case 'e' :
    			System.out.println("E");
    			break;
    		default :
    			System.out.println("你的输入有误~");
    	
    	}
    

    在这里插入图片描述

    1. 对学生成绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。(注:输入的成绩不能大于 100), 提示: 成绩/60
    	//对学生成绩大于60分的,输出"合格"。低于60分的,
    	//输出"不合格"。(注:输入的成绩不能大于100), 提示 成绩/60
    	//思路分析
    	//1. 这道题,可以使用 分支来完成, 但是要求使用switch
    	//2. 这里我们需要进行一个转换, 编程思路 : 
    	//   如果成绩在 [60,100] , (int)(成绩/60) = 1 
    	//   如果成绩在 [0,60) , (int)(成绩/60) = 0 
    	
    	//代码实现
    	Scanner sc = new Scanner(System.in);
    	System.out.println("请输入成绩在0-100之间:");
    	double score = sc.nextDouble();
    	if (score >= 0 && score<=100) {
    	    switch ((int) (score / 60)) {
    	        case 0:
    	            System.out.println("不合格");
    	            break;
    	        case 1:
    	            System.out.println("合格");
    	    }
    	}else{
    	    System.out.println("请输入成绩在0-100之间");
    	}
    

    在这里插入图片描述

    1. 根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂练习, 提示: 使用穿透 ]
    	//根据用于指定月份,
    	//打印该月份所属的季节。
    	//3,4,5 春季 6,7,8 夏季  9,10,11 秋季 12, 1, 2 冬季 
    	//[课堂练习, 提示 使用穿透 ] 
    	//
    	//思路分析
    	//1. 创建Scanner对象, 接收用户输入
    	//2. 使用 int month 接收
    	//3. 使用switch 来匹配 ,使用穿透来完成,比较简洁
    	
    	Scanner myScanner = new Scanner(System.in);
    	System.out.println("输入月份");
    	int month = myScanner.nextInt();
    	switch(month) {
    		case 3:
    		case 4:
    		case 5: 
    			System.out.println("这是春季");
    			break;
    		case 6:
    		case 7:
    		case 8: 
    			System.out.println("这是夏季");
    			break;
    		case 9:
    		case 10:
    		case 11: 
    			System.out.println("这是秋季");
    			break;
    		case 1:
    		case 2:
    		case 12: 
    			System.out.println("这是冬季");
    			break;
    		default :
    			System.out.println("你输入的月份不对(1-12)");
    	}
    

    在这里插入图片描述

    6. switch 和 if 的比较

    1. 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句。
    2. 其他情况:对区间判断,对结果为 boolean 类型判断,使用 ifif 的使用范围更广。

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254675.html

  • 相关阅读:
    [转]SVN服务器搭建和使用(二)
    [转]SVN服务器搭建和使用(一)
    BZOJ 2049 Sdoi2008 Cave 洞穴勘测
    BZOJ 1589 Usaco2008 Dec Trick or Treat on the Farm 采集糖果
    BZOJ 2796 POI2012 Fibonacci Representation
    BZOJ 2115 Wc2011 Xor
    BZOJ 3105 CQOI2013 新Nim游戏
    BZOJ 2460 Beijing2011 元素
    BZOJ 3687 简单题
    BZOJ 1068 SCOI2008 压缩
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254675.html
Copyright © 2011-2022 走看看