switch分支
switch
格式
switch(变量){
case 值1:
要执行的代码;
break;
case 值n:
要执行的代码;
break;
default:
上述值都不匹配时会进入本分支
break;
}
switch分支 vs if 分支
-
特点
- 代码比if分支更加简洁
-
缺点
-
无法处理范围数据
- 例如:如果分数在60到80之间,打印良好
- if(score>60 || score<80){打印良好}
-
-
总结
-
if语句可以处理任何分支
- 功能更强
- 所有switch可以处理的,if都能处理
-
switch分支专门用于处理定值的分支
-
电话客服系统
- 1,话费充值
- 2,宽带业务
- 3,人工服务
-
-
输入控制
-
需求
- 从键盘接收两个数据
- 计算他们的和
-
编码
-
阶段一,实现基本功能
import java.util.Scanner; public class 简易计算器 { public static void main(String[] args) { // 获得键盘输入的工具 Scanner ipt = new Scanner(System.in); // 提示用户输入数据 System.out.println("请输入第一个数:"); int num1 = ipt.nextInt(); // 提示用户输入第二个数据 System.out.println("请输入第二个数据:"); int num2 = ipt.nextInt(); // 求和 int s = num1 + num2; System.out.println("两个数的和是" + s); } }
-
存在的问题
- 如果用户随意输入,会造成程序崩溃
-
解决办法
- 判断用户输入的类型
-
格式
- Scanner对象.hasNext**
-
例子
-
需求
- 从键盘输入一个数据,验证是否是整数,如果是整数,那让它翻倍,如果不是整数,提示数据非法
-
代码
import java.util.Scanner; public class 测试键盘输入的验证 { public static void main(String[] args) { // 生成一个键盘输入的工具对象 Scanner ipt = new Scanner(System.in); // 判断是否是整数 System.out.println("请输入一个整数,我会让你翻倍:"); boolean is_int = ipt.hasNextInt(); System.out.println(is_int); if (is_int == true) { System.out.println("用户输入了合法的数据"); int num = ipt.nextInt(); System.out.println(num * 2); // System.out.println(用户输入的数据*2); } else { System.out.println("非法数据,请不要再这样!"); } } }
-
-
模型
-
局部变量
-
案例
-
现象一,a可以正常输出
public class two { public static void main(String[] args) { int a = 1; if (true) { System.out.println("if里面的a " + a); } } }
-
现象二,a不可以正常输出
public class two { public static void main(String[] args) { if (true) { int a = 1; System.out.println("if里面的a"+a); } System.out.println("if外面的a " + a); } }
-
-
小结
- 变量能否正常使用,取决于它在哪里定义
- 它的生命范围在出生地所对应的花括号范围内
if补充
-
条件的本质
if(条件){ 执行内容 } 条件的本质最终就是布尔值 如果 条件通常是运算的结果,如 temp>=37.3 if(条件){ 条件的结果是true,就执行这里代码} else{ 条件的结果是false,执行这里的代码 }