**
Day 8
**
/**
* 关于switch语句:
* 1、switch语句也属于选择结构,也是分支语句
* 2、switch语句的语法结构:
* 一个比较完成的switch语句的语法结构:
* switch(int或String类型的字面值或变量){
* case int或String类型的字面值或变量:
* java语句;
* ...
* break;
* case int或String类型的字面值或变量:
* java语句;
* ...
* break;
* case int或String类型的字面值或变量:
* java语句;
* ...
* break;
* ....
* default :
* java语句;
* ....
* }
* 3、switch语句执行原理:
* switch后面小括号当中的“数据”和case后面的“数据”进行一一匹配,匹配成功的分支执行。
* 按照自上而下的顺序依次匹配、
* 4、匹配成功的分之执行,分支当中最后有“break”语句的话,整个switch语句终止。
* 5、匹配成功的分之执行,分支当中没有“break”语句的话,直接进入下一个分支执行(不进行匹配),
* 这种现象叫做case穿透现象。【提供break;语句可以避免穿透】
* 6、所有分支都没有匹配成功,当有default的语句话,汇之星default分支当中的程序。
* 7、switch后面和case后面只能是int或者String类型的数据,不能是探测其它类型。
* *当然byte,short,char也可以直接写道switch和case后面,因为他们可以进行自动类型转换。
* byte,short,char可以自动转换成int类型。
*
* *JDK6的,switch和case后面只能探测int类型
*
* *JDK7之后包括7版本在内,引入新特性,switch关键字和case关键字后面可以探测int或String类型的数据。
*
* 8、case可以合并。
*/
public class SwitchTest01{
public static void main(String[] args){
/*long a = 10L;
int b = a ;//编译报错
*/
/*long x = 100L;
switch (x){ //编译报错
}*/
//较完整的switch语句
//接收用户的输入
//1 表示星期一
//2 表示星期二
//.....
//7 表示星期二
java.util.Scanner sscanner = new java.util.Scanner(System.in);
System.out.print("请输入数字:");
int num = sscanner.nextInt();
switch (num){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期2");
break;
case 3:
System.out.println("星期3");
break;
case 4:
System.out.println("星期4");
break;
case 5:
System.out.println("星期5");
break;
case 6:
System.out.println("星期6");
break;
case 7:
System.out.println("星期7");
break;
default:
System.out.println("输入有误");
}
/**
* 实现计算器当中的
* +
* -
* *
* %
* 实现思路:
* 1、选择所有数据从键盘输入
* 2、使用switch语句进行判断
* 3、需要从控制台输入三次:
* 第一个数字
* 运算符
* 第二个数字
*
* 最终在控制台是这样的一个场景:
* 欢迎使用简单计算器系统:
* 请输入第一个数字:10
* 请输入运算符:+
* 请输入第二个数字:20
* 运算结果:10+20 = 30
*/
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.println("欢迎使用简单计算器系统");
System.out.println("请输入第一个数字:");
int num1 = s.nextInt();
System.out.println("请输入运算符:");
String operator = s.next();
System.out.println("请输入第二个数字:");
int num2 = s.nextInt();
int result = 0;
switch (operator){
case "+" :
result = num1 + num2;
break;
case "-" :
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
case "%":
result = num1 % num2;
break;
default:
System.out.println("该系统不支持");
}
System.out.println("输出结果:"+num1 + operator +num2 +"="+ result);
}
}