• java-分支结构-switch-case结构


    分支结构:switch-case

    1.格式

    switch(表达式){

    case 常量1:

      执行语句1;

    case 常量2:

      执行语句2;

    ……

    defalut:

      执行语句n;

      //break

    }

    2.说明

    1)根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此末尾结束为止。

    2)break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch结构。

    3)switch结构中的表达式,只能是以下六种类型之一:byte、short、char、int、枚举类型(jdk5.0新增类型)、String(jdk7.0新增类型)。

    4)case之后只能声明常量,不能声明范围。只能是==的关系。不能判断布尔类型(如 case(a>3):)

    5)break关键字是可选的。

    6)default相当于if-else的else。efault结构是可选的。位置灵活,可放在末尾,可放在开头,也可放在几个case中间。先看case,再看default,看完default再往下走。不想往下走加上break。

    例1:

    代码实现:

    class SwitchCaseTest{
    	public static void main(String[] args){
    	int num=2;
    	switch(num){
    	case 0:
    		System.out.println("zero");
    	case 1:
    		System.out.println("one");
    	case 2:
    		System.out.println("two");
    	case 3:
    		System.out.println("three");
    	default:
    		System.out.println("other");
    		}
    	}	
    }

    编译实现:

    ------------恢复内容开始------------

    分支结构:switch-case

    1.格式

    switch(表达式){

    case 常量1:

      执行语句1;

    case 常量2:

      执行语句2;

    ……

    defalut:

      执行语句n;

      //break

    }

    2.说明

    1)根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此末尾结束为止。

    2)break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch结构。

    3)switch结构中的表达式,只能是以下六种类型之一:byte、short、char、int、枚举类型(jdk5.0新增类型)、String(jdk7.0新增类型)。

    4)case之后只能声明常量,不能声明范围。只能是==的关系。不能判断布尔类型(如 case(a>3):)

    5)break关键字是可选的。

    6)default相当于if-else的else。efault结构是可选的。位置灵活,可放在末尾,可放在开头,也可放在几个case中间。先看case,再看default,看完default再往下走。不想往下走加上break。

    例1:

    代码实现:

    class SwitchCaseTest{
    	public static void main(String[] args){
    	int num=2;
    	switch(num){
    	case 0:
    		System.out.println("zero");
    	case 1:
    		System.out.println("one");
    	case 2:
    		System.out.println("two");
    	case 3:
    		System.out.println("three");
    	default:
    		System.out.println("other");
    		}
    	}	
    }

    编译实现:

    例2:使用switch把小写类型的char型转为大写,只转换a,b,c,d,e,其余的输出"other"

    提示:String word=scan.next();   char c=word.charAt(0); swicth(c){}

    还没做

    例3:对学生成绩大于60分的,输出“合格“,低于60分的,输出“不合格“。

    代码实现:

    class SwitchCaseTest{
    	public static void main(String[] args){
    	int score = 70;
    	switch(score / 10){
    	case 0:
    	case 1:
    	case 2:
    	case 3:
    	case 4:
    	case 5:
    		System.out.println("不及格");
    		break;
    	case 6:
    	case 7:
    	case 8:
    	case 9:
    	case 10:
    		System.out.println("及格");
    		break;
    	}
    	}
    }

    说明:如果switch-case结构中的多个执行语句相同,可考虑进行合并。

    编译实现:

    例4:根据用于指定月份,打印该月份所属的季节。

    3,4,5春季     6,7,8夏季    9,10,11秋季     12,1,2冬季

    代码实现:

    class SwitchCaseTest{
    	public static void main(String[] args){
    	int season = 2;
    	switch(season){
    	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 12:
    	case 1:
    	case 2:		
    		System.out.println("冬季");
    		break;
    	}
    	}
    }

    编译实现:

    例5:编写程序:从键盘上输入2019年的"month"和“day”,要求输出的日期为2019年的第几天。(日积月累)

    方法1代码:

    import java.util.Scanner;
    class SwitchCaseTest{
    	public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    		System.out.println("请输入你的月份:");	
    		int month = scan.nextInt();
    		System.out.println("请输入你的天数:");	
    		int day = scan.nextInt();
    		int sumDays = 0;
    		switch(month){
    		case 1:
    			sumDays = day;
    			break;
    		case 2:		
    			sumDays = 31 + day;
    			break;
    		case 3:
    			sumDays = 31 + 28 + day;
    			break;
    		case 4:
    			sumDays = 31 + 28 + 31 +day;
    			break;
    		...	
    	}
    		System.out.print("2019年"+month+"月"+day+"日是当年的第"+sumDays+"天");
    
    	}
    }

     方法2代码:(这种方法不需要用break,还省时)

    import java.util.Scanner;
    class SwitchCaseTest{
    	public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    		System.out.println("请输入你的月份:");	
    		int month = scan.nextInt();
    		System.out.println("请输入你的天数:");	
    		int day = scan.nextInt();
    		int sumDays = 0;
    		switch(month){
    		case 12:
    			sumDays += 30;
    		case 11:		
    			sumDays += 31;
    		case 10:
    			sumDays += 30;
    		case 9:
    			sumDays += 31;;
    		case 8:
    			sumDays += 31;
    		case 7:
    			sumDays += 30;
    		case 6:
    			sumDays += 31;
    		case 5:
    			sumDays += 30;
    		case 4:
    			sumDays += 31;
    		case 3:
    			sumDays += 28;
    		case 2:
    			sumDays += 31;
    		case 1:
    			sumDays += day;		
    	}
    	System.out.print("2019年"+month+"月"+day+"日是当年的第"+sumDays+"天");
    	}
    }

     编译运行:

  • 相关阅读:
    以管理员权限运行程序?
    vb6 判断64位操作系统
    vb6动态创建webbrowser
    vb6中webbrowser控件树转换备忘
    vb6异步ADO操作
    sql compact 使用EF无法更新的问题?
    本地vbs调试快速显示输出
    c# 加密转载 备忘
    vb.net 动态调用api
    SharePoint List 查看器
  • 原文地址:https://www.cnblogs.com/SpringChuXin/p/13412847.html
Copyright © 2020-2023  润新知