1

函数:对完成某项功能的代码块的封装。

    |--写法:
    修饰符  返回值类型  函数名(参数表){
        //实现具体功能的代码块
    }
    
    修饰符:可选元素,目前阶段自定义函数必须添加static,
    三要素:
        返回值类型:函数的返回值类型    void表示当前函数没有返回值
        函数名:命名规范:helloWorld
        参数表:接受输入值。
        
    例:
    //定义一个加法器
    static double add(double num1, double num2){
        double result = num1 + num2;
        return     result;//返回数据
    }
    
    调用:函数名(传入实际值)
    
    形参:定义函数时,参数表中定义的变量
    实参:在实际调用函数时,传入的值称为实参
    注:形参和实参可以同名,因为它们的作用域范围不同
            形参的作用域范围只在其函数的代码块中
            
    |--作用:(1)减少冗余代码
                     (2)提高可维护性
                     (3)程序更加灵活
                     (4)提高代码复用性

递归调用:函数自己调用自己

//功能:1+2+3+...+n
//1+2+3+...+n-1 +n
static int add(int n){
    //1+2+3+...+n-1 + n
    if(n == 0)return 0;
    return add(n-1) + n;
}
特点:1.满足一个推导公式,推导公式中可以再次利用函数本身
            2.有一个收敛条件,满足收敛条件后停止递归调用
            

自顶向下,逐步求精:

面向过程的编程思想

任意一个大于2的偶数都可以分为两个质数的和。

    1.读入用户输入的数值
    2.验证是否是大于2的偶数
    3.如果否,提示“请输入大于2的偶数”;如果是,则继续第4步
    4.遍历所有的拆分组合 a   b
    5.判断 a  b是否都为质数-->如何判断一个数是否是质数
    6.如果都是,则输出;否则继续4、5、6步骤,直到所有拆分情况遍历完成
        

康师傅爱你呦
17 声望2 粉丝

萌新一个,刚刚接触这个!