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+"天");
	}
}

 编译运行:

原文地址:https://www.cnblogs.com/SpringChuXin/p/13412847.html