耿余航 编程算法基础03 假设修正法

我们在学习编程时
由一开始不会编写代码
到能写代码但处理不好程序的逻辑
再到能写好一个程序的代码,而且代码逻辑分明,便于他人阅读
那么
这里写图片描述
代码写好以后往往需要进行维护,所以
这里写图片描述




案例展示
这里写图片描述

/*
  int a = ..
  int b = ..
  int c = ...

  求3个数字中的最大值
*/
public class T1
{
    public static void main(String[] args)
    {
        int a = 5;
        int b = 10;
        int c = 6;
//      int m = a>b?(a>c?a:c)?(b>c?b:c)   //逻辑不清晰
        //  假设修正法
        //将m设为一个擂台,让这三个数在擂台上PK
        //比武开始,谁赢了谁留在擂台上
        int m = a;// 假设,擂主
        if(b>m) m = b;// 修改
        if(c>m) m = c;// 修改

        System.out.println(m);
    }
}

判断闰年

求某一个年份是不是闰年。

/*判断是否是闰年*/
package AsumeCorrect;

public class RunYear {

    public static void main(String[] args) {
//     int year = 2000;
//     boolean t = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;//可读性太差
//     System.out.println(t);

       //假设修正法
       int year =2000;
       boolean t = false;//假设不是闰年
       if(year%4==0){
           t=true;
       }
       if(year%100==0){
           t=false;
       }
       if(year%400==0){
           t=true;
       }
       System.out.println(year+"是否闰年:"+t);
    }

}
2000是否闰年:true

‘评级’算法

某小学要求不能给学生打具体分数,而是给一个评级。

当然,这个“评级”也是根据分数计算出来的。

规则:

设百分制的分数为 n

则根据 n 的范围:

90-100: 优秀

80-89: 良好

70-79: 正常

60-69: 合格

0-59: 加油

已经知道了分数 n,请计算“评级”

注意:不允许使用else语句,当然也不能使用 switch,因为题目的目的是训练假设修正法。

/*“评级”算法
某小学要求不能给学生打具体分数,而是给一个评级。
当然,这个“评级”也是根据分数计算出来的。
规则:
设百分制的分数为 n
则根据 n 的范围:
90-100:优秀
80-89:良好
70-79: 正常
60-69: 合格
0-59: 加油
已经知道了分数 n,请计算“评级”
注意:不允许使用else语句,当然也不能使用 switch,因为题目的目的是训练假设修正法。
*/
package AsumeCorrect;

public class Range {
    public static void main(String[] args) {
       int grade = 85;
       String ans ="优秀";
       if(grade>=80&&grade<=89){
           ans="良好";
       }
       if(grade>=70&&grade<=79){
           ans="正常";
       }
       if(grade>=60&&grade<=69){
           ans="合格";
       }
       if(grade>=0&&grade<=59){
           ans="加油";
       }
       System.out.println("该学生评级为:"+ans);
    }
}
该学生评级为:良好

猜你喜欢

转载自blog.csdn.net/weixin_41853490/article/details/81160709