2020-10-31

第六天学习日报

二路分支的回顾

情景

   判断一个条件,如果成立,执行a,否则,就执行b

例子

购物判断是否是会员,如果是会员,那么可以打8折,如果不是会员,打95折

格式

if(条件){
	条件成立时的情况
} else{
	条件不成立时的情况
}

多路分支

情景
判断条件1,如果成立,执行事件1。如果不成立,那么判断条件2,条件2如果成立,就执行事件2,不成立那就判断条件n,如果所有条件均不成立,那就执行else分支里的内容

例子
给学生的分数评级
80以上是优秀
60-80之间,是普通
60分以下,是不合格
格式

if(条件1){
	条件成立时的情况
} else if(条件2){
	条件2成立时的情况
} else if(条件n){
	条件n成立时的情况
}
else{
	条件不成立时的情况
}

switch分支

应用
计算机编程大赛的奖励

需求

韩嫣参加计算机编程大赛
如果获得第一名,将参加麻省理工大学组织的1个月夏令营
如果获得第二名,将奖励惠普笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,不给任何奖励
分析
解决
另一种分支

switch

格式


switch(变量){
case1:
	要执行的代码;
	break;
case 值n:
	要执行的代码;
	break;
default:
	上述值都不匹配时会进入本分支
	break;
}


例子
public class 比赛奖励 {
public static void main(String[] args) {
// 定义一个名次变量
int mc = 9;

   switch (mc) {

        case 1:
            // sout + table
            System.out.println("夏令营");
            break;
        case 2:
            System.out.println("笔记本");
            break;
        case 3:
            System.out.println("移动硬盘");
            break;
        default:
            System.out.println("没有任何奖励");

    }

    System.out.println("程序结束");
}

switch分支 vs if 分支

特点

代码比if分支更加简洁

缺点

无法处理范围数据
例如:如果分数在60到80之间,打印良好
f(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,执行这里的代码
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值