switch语句

switch(表达式)
	{
		case 取值1:
			逻辑
			break;(跳出,没有跳出会继续执行)
		case 取值2:
			逻辑
			break;
		…...
		default:
			逻辑
			break;
	}
	switch语句特点:
	1,switch语句选择的类型只有四种:byte,short,int ,char。(jdk7后支持String)
	2,case之间与default没有顺序。先判断所有的case,没有匹配的case执行
	  default。
	3,switch语句停止的条件是遇到了break关键字或者结束switch语句的大括号。
	4,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运
	  行可以执行的语句,直到遇到break或者switch结尾结束。
	5,switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能跟变量。
	根据用于指定的月份,打印该月份所属的季节.
	一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
	345 spring   678 sunmer 9 10 11  autumn  12 1 2 winter

代码:

//		switch语句
//		switch(表达式)
//		{
//			case 取值1:
//				逻辑
//				break;(跳出,没有跳出会继续执行)
//			case 取值2:
//				逻辑
//				break;
//			…...
//			default:
//				逻辑
//				break;
//		}

		// 表达式,就是一个变量
		// 1,switch语句选择的类型只有四种:byte,short,int ,char。(jdk1.7后支持String)
		int i = 1;
		switch (i) {
		case 1: // 取值:必须是固定值,取值类型要和表达式类型一致
			System.out.println(111);
			break;// (跳出,没有跳出会继续执行,往下面的选择分支继续执行)
		case 2:
			System.out.println(222);
			break;
		// ...
		default: // 所有的case 都匹配不到i,那么就执行默认的default
			System.out.println("其它");
		}

//		根据用于指定的月份,打印该月份所属的季节.
		Scanner in = new Scanner(System.in);
		System.out.println("请输入要查询的月份:");
		int i2 = in.nextInt();
		switch (i2) {
		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;
		}

//		switch语句特点:
//		1,switch语句选择的类型只有四种:byte,short,int ,char。(jdk7后支持String)
//		*2,case之间与default没有顺序。先判断所有的case,没有匹配的case执行
//		  default。
//		*3,switch语句停止的条件是遇到了break关键字或者结束switch语句的大括号。
//		4,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运
//		  行可以执行的语句,直到遇到break或者switch结尾结束。
//		5,switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能跟变量。
//		根据用于指定的月份,打印该月份所属的季节.
//		一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
//		345 spring   678 sunmer 9 10 11  autumn  12 1 2 winter

if和和switch的选择

if 和switch 语句很像,具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而是符号byte,short int char 四种类型.
虽然2个语句都可以使用,建议使用switch语句.因为效率稍高.
其他情况:
对区间判断,对结果为boolean 类型判断,使用if if的使用范围更广。
if 除了能判断具体数值还能判断区间。switch 判断区间会很费劲的。要写好多case 对于运算结果是boolean型的 if 能判断 switch 是不能实现的。例如:根据学生考试成绩划分ABCD   A90-100  B80-89 C70-79 D60-69 E0-59。

解题:

// if和switch的选择
		// 例如:根据学生考试成绩划分ABCD A90-100 B80-9 C70-79 D60-69 E0-59
//		Scanner scanner = new Scanner(System.in);
//		System.out.println("请输入查询的成绩");
//		int chengji = scanner.nextInt();
//		if(chengji<=100&&chengji>=90) {
//			System.out.println("你的成绩等级为:A");
//		}else if(chengji<90&&chengji>=80) {
//			System.out.println("你的成绩等级为:B");
//		}else if(chengji<80&&chengji>=70) {
//			System.out.println("你的成绩等级为:C");
//		}else if(chengji<70&&chengji>=60) {
//			System.out.println("你的成绩等级为:D");
//		}else {
//			System.out.println("你的成绩等级为:E");
//		}

//		1.输入一个分数判断
//		0-60  分不及格
//		60-80   良好
//		80-90   优秀
//		100     厉害了 我的哥
//		Scanner scanner = new Scanner(System.in);
//		System.out.println("请输入你的分数:");
//		int chengji = scanner.nextInt();
//		if(chengji<=100&&chengji>90) {
//			System.out.println("厉害了 我的哥");
//		}else if(chengji<90&&chengji>=80) {
//			System.out.println("优秀");
//		}else if(chengji<80&&chengji>=60) {
//			System.out.println("良好");
//		}else {
//			System.out.println("不及格");
//		}

//		2.输入一个年龄	
//		0-20   青少年
//		20-30  中流砥柱
//		30-40  成功人士
//		40-50  MAN大叔 
//		大于50 安享晚年	
//		Scanner scanner = new Scanner(System.in);
//		System.out.println("输入一个年龄:");
//		int age = scanner.nextInt();
//		if(age>=50) {
//			System.out.println("安享晚年");
//		}else if(age<50&&age>=40) {
//			System.out.println("MAN大叔");
//		}else if(age<40&&age>=30) {
//			System.out.println("成功人士");
//		}else if(age<30&&age>=20) {
//			System.out.println("中流砥柱");
//		}else {
//			System.out.println("青少年");
//		}

//		3.判断闰年
//		  什么是闰年?可以被4整除不能被100整除,或者可以被400整除,那么这一年就是
//		Scanner scanner = new Scanner(System.in);
//		System.out.println("输入一个年份:");
//		int lyear = scanner.nextInt();
//		if ((lyear % 4 == 0 && lyear % 100 != 0) || lyear % 400 == 0) {
//			System.out.println("这一年是闰年");
//		} else {
//			System.out.println("这一年不是闰年");
//		}
//		
//		4.根据swich语句判断输入的是什么+ - * /并且进行两个数的运算。
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入第一个数:");
		int a = scanner.nextInt();
		System.out.println("请输入第二个数:");
		int b = scanner.nextInt();
		System.out.println("请输入要进行的加减乘除:");
		String operator = scanner.nextLine();
//		System.out.println(operator);
		switch (operator) {
		case "-":
			System.out.println("a-b:" + (a - b));
			break;
		case "+":
			System.out.println("a+b:" + (a + b));
			break;
		case "/":
			System.out.println("a/b:" + (a / b));
			break;
		case "*":
			System.out.println("a*b:" + (a * b));
			break;
		}