第六章-函数笔记

6 函数

什么是函数?

函数是一段可以完成某个独立功能的代码

private static boolean isPrime(int n) {
    boolean flay = true;
    for (int a = 2; a <= n / 2; a++) {


        if (n % a == 0) {
            flay = false;

            break;
        }
    }
    return flay;
}

 

public class E201_06_01_输出100以内的素数 {
    public static void main(String[] args) {

        for (int n=2; n<=100;n++){
            if (isPrime(n)){
                System.out.printf("%5d",n);
            }
        }
    }
文档化注释
    /**
     * 判断素数
     * @param n 参数 待判断的数
     * @return  true -是素数,false-不是素数
     */
    private static boolean isPrime(int n) {
        boolean flay = true;
        for (int a = 2; a <= n / 2; a++) {


            if (n % a == 0) {
                flay = false;

                break;
            }
        }
        return flay;
    }
}

文档化注释的好处:不用打开代码即可查看函数的说明书

在函数上方输入/**  **/

 

形式参数:在定义函数时给的参数叫做形式参数,参数叫什么名字与功能无关,当然需要见名思义的原则。

实际参数:在调用函数时给的参数叫做实际参数(实参);实参在调用时必须具有实际的值。

为什么需要函数呢?

将大事的,复杂的问题分解为若干个小的,简单的问题去求解,能有效的帮助我们轻松的解决复杂问题。

案例:验证哥德巴赫猜想

 

函数怎么用?

函数的本质是什么

函数就是一个数据加工的黑箱子,我们不应关注它的内部实现细节,而是关注他的外部的信息,比如这个箱子是干嘛的(功能),需要给他什么(参数)以及他可以得到什么结果(返回值)

对于程序员而已,更重要的函数的设计,而不是实现。

函数的设计:

1. 函数名:见名思议,也就是根据功能定名字

2. 参数:考虑要实现这个功能,需要外部提供什么

3. 预期结果(类型):如果函数正确执行,应该得到的结果的类型

4. **设计函数只需要回答三要素是什么,不能去考虑如何实现,或者说代码怎么写

案列:输出100以内的素数

 

将原来的判断能否分解的函数改造成分解函数,其返回值表达的含义有两层:

(1)能否分解

(2)怎么分

难题:return只能返回一个数,但是根据上面的要i求需要三个数,怎么办

 

 

有人可能提出在分解函数中同时输出 ,如下面代码

private static boolean canSplit(int n){
        int i = 0;
        for (int m = 3;m<n/2;m+=2){
            if(isPrime(m)&&isPrime(n-m)){
                System.out.printf("%d=%d+%d\n",n,m,n-m);
                return true;
            }
        }
        return false;
    }这种做法不好

反对原因:

(1. )函数的功能要尽量单一,不要将多个功能揉在一起

(2. )如果在函数直接输出,可能会导致这个函数的可重性变差,比如你用中文输入法,那外国程序员就没办法用你的函数


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页