补充
字符串匹配需要用到equals方法
假设情景用户通过键盘输入自己的性别,如何判断用户输入的性别是男还是女。
String gender = scan.next(); //定义用于接收字符串的变量
if (gender.equals("女"))
......
else
......
switch-case结构
switch(表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2;
//break;
...
default:
执行语句n;
//break;
}
要注意的是:
1. 如果分支语句中没有break,就不能跳出switch-case结构,当运行后程序在switch-case结构中找到一个入口之后,该入口之后的每个分支都会执行一次(包括default)。
2. break表示一旦执行到此关键字,就跳出switch-case结构。
3. switch结构中的表达式,只能是如下的6种数据类型之一:byte 、short、char、int、枚举类型、String类型。
4. case 之后只能声明常量。不能声明范围。
5. default:相当于if-else结构中的else,且default结构是可选的,位置是灵活的。
结构特点: 如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
例如,对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。
该题目只有两种输出结果,合格与不合格,对于学生成绩,只要大于60分即为合格,则可以考虑合并。switch-case结构如下:
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;
default:
System.out.println("成绩有误");
break;
}
由于switch-case结构“穿透”的特性,只要是合法成绩总会顺延执行 case5 或 case10。
但对于该题目还有更简洁的写法,就是将score除以60,大于60的成绩会得到1,小于60的会得到0,将10种case化简为两种。
switch(score / 60){
case 0:
System.out.println(