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;
}