化繁为简和先死后活
1.化繁为简:把复杂的需求,分解为简单的需求,依次实现。
2.先死后活:将一个定性的需求的参数变灵活(比如设变量),以适应其他与这个需求数据不同其他相同的情况。
举个例子
现在有一个需求
打印1----100间是9的倍数的整数,统计个数和总和
第一步,化繁为简
(1)打印出1----100的整数
public class test1{
public static void main(String[] args){
for (int a = 1;a < 101;a++){
System.out.println(a);
}
}
}
(2)在输出的过程,进行筛选,选出9的倍数
public class test1{ public static void main(String[] args){ for (int a = 1;a < 101;a++){ if (a % 9 == 0){ System.out.println(a); } } } }
(3)每一次筛选后,统计个数加一,并加到总和
public class test1{
public static void main(String[] args){
int sum = 0,num = 0;
for (int a = 1;a < 101;a++){
if(a % 9 == 0){
System.out.println(a);
num++;
sum += a;
}
}
}
}
第二步,先死后活
这次是求1~100,9的倍数,那如果以后有4~90,534~436654,123~567,8的倍数,10的倍数,3的倍数等等的话,也应该可以利用这个程序,所以我们只需要把固定的数据,用变量来替换,那么就能适用更多情况
import java.util.Scanner;
public class test1{
public static void main(String[] args){
int sum = 0,num = 0,start,end,mul;
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入区间左端数值");
start = myScanner.nextInt();
System.out.println("请输入区间右端数值");
end = myScanner.nextInt();
System.out.println("请输入你想求倍数的数");
mul = myScanner.nextInt();
for (int a = start;a <= end;a++){
if(a % mul == 0){
System.out.println(a);
num++;
sum += a;
}
}
System.out.println("num =" + num + "\n" + "sum =" + sum);
}
}