化繁为简和先死后活


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);
        }
}