1.3假设修正法
衡量一个软件的质量的标准是什么?
正确性,运行效率,稳定性,可读性(逻辑清晰、简明,甚至有时可以牺牲效率)
求最大值
求a,b,c三个数中的最大值。
/*有a,b,c三个数字,求最大值。*/
package AsumeCorrect;
public class MaxNumber {
public static void main(String[] args) {
int a = 3;
int b = 10;
int c = 7;
int m = a;// 假设,擂主
if (b > m) {// 修改
m = b;
}
if (c > m) {// 修改
m = c;
}
System.out.println(m);
}
}
10
判断闰年
求某一个年份是不是闰年。
/*判断是否是闰年*/
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);
}
}
该学生评级为:良好