从零开始学Java—Day04练习01:switch语句和if多分支语句做题过程及相关思考记录

一.根据成绩输出对应的等级,使用if多分支和switch语句分别实现。

     a)A级   [90,100]
     b)B级   [80,90)
     c)C级   [70,80)
     d)D级   [60,70)
     e)E级   [0,60)
(一)switch语句
  1、思考
  (1)首先拿到题目就看到用switch语句实现,而要匹配的却不是一个数
       而是一个范围。
       然后就想办法将范围缩小到一个值,想到整除和取余运算,
       而取余在这里却不好使用,于是便用整除运算。
  (2)经过整除运算,由题:case 10和case 9都是A级,便想着如何简化代码,
       尝试用||即case 10||9,发现系统虽然不会报错,
       但会直接跳到default;尝试了许多方法,还是用case 10:case 9:
       最为简便。
  (3)想让代码更严谨,于是采用了while+if语句当输入大于100和小于0的数时:
       会报错,并能够重新输入。
  2、代码:
       import java.util.Scanner;
       public class HomeWork02 {
       public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          boolean flag = true;
     //实现成绩输入有误,重新输入操作
          while (flag) {
              System.out.println("请输入成绩:");
              int grade = sc.nextInt();
              if (grade > 100 || grade < 0) {
                  System.out.println("成绩输入有误,请重新输入!");
                  continue;
              }
                  switch (grade / 10) {
                      case 10 :case 9 :
                          System.out.println("您的成绩是A级");
                          break;
                      case 8:
                          System.out.println("您的成绩是B级");
                          break;
                      case 7:
                          System.out.println("您的成绩是C级");
                          break;
                      case 6:
                          System.out.println("您的成绩是D级");
                          break;
                      default:
                          System.out.println("您的成绩是E级");
                          break;
                  }
          break;
          }}}
(二)if分支语句
  1、思考总结
  (1)if分支语句很容易写出很多“is always true”的代码,
       一般是从第二条语句开始,大部分是因为上一条语句已经
       缩小了题中范围,如:
        上一句中有了:if (grade > 100 || grade < 0)
        下一句:if (grade >= 90)就已经足够,没必要加上
        grade<=100
  (2)想让代码更严谨,于是采用了while+if语句当输入大于100和小于0的数时:
       会报错,并能够重新输入。记得break。
       2、代码:                                                          */
       import java.util.Scanner;
       public class HomeWork02 {
           public static void main(String[] args) {
               Scanner sc = new Scanner(System.in);
               boolean flag = true;
               //实现成绩输入有误,重新输入操作
               while (flag) {
                   System.out.println("请输入成绩:");
                   int grade = sc.nextInt();
                   if (grade > 100 || grade < 0) {
                      System.out.println("成绩输入有误,请重新输入!");
                      continue;
                   }
                   if (grade >= 90) {
                       System.out.println("您的成绩是A级");
                   }
                   else if (grade >= 80 ) {
                        System.out.println("您的成绩是B级");
                   }
                    else if (grade >= 70 ) {
                        System.out.println("您的成绩是C级");
                   }
                    else if (grade >= 60 ) {
                        System.out.println("您的成绩是D级");
                   }
                   else  {
                       System.out.println("您的成绩是E级");
                   }
                    break;}}}

二、switch语句与if多分支语句的相同与不同
 1、相同点:都能进行多分支情况的处理
 2、不同点:switch 更适合用于多分支情况,
          就是有很多种情况需要判断处理,判断条件类型单一,只有一个入口,
          在分支执行完后(如果没有 break 跳出),不加判断地执行下去;
          而 if多分枝主要适用于分支较少的分支结构,判断类型不是单一,
          只要一个分支被执行后,后边的分支不再执行。
          总结:switch 更适合多分支但不灵活
               if多分支很灵活但相对于switch处理多分支语句代码更繁复。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值