我们在学习编程时
由一开始不会编写代码
到能写代码但处理不好程序的逻辑
再到能写好一个程序的代码,而且代码逻辑分明,便于他人阅读
那么
代码写好以后往往需要进行维护,所以
案例展示
/*
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);
}
}
该学生评级为:良好