第六章-函数笔记

原创 2018年04月14日 23:29:17

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


《Java并发编程实战》第六章 任务执行 读书笔记

一、 在线程中执行任务 无限制创建线程的不足 .线程生命周期的开销非常高 .资源消耗 .稳定性 二、Executor框架 Executor基于生产者-消费者模式,提交任务的...
  • love_world_
  • love_world_
  • 2014-05-26 07:43:27
  • 1602

Java编程思想笔记——第六章

1、无论何时创建包,都已经在给定保的名称的时候隐含地制定了目录结构,这个包必须位于其m...
  • canglingye
  • canglingye
  • 2014-07-04 08:59:22
  • 419

全球通史读书笔记上(第六章——古代文明的新起)

第六章古印度文明 1. 哈巴拉文化消失的原因 (1)被雅利安人所破坏 (2)奴隶主阶级的沉重剥削。 (3)过度砍伐森林,水土流失,生态失衡 2.   (1)印度的楼兰——摩亨约·达罗(或为最早期的印度...
  • qq_32631151
  • qq_32631151
  • 2017-12-29 17:57:43
  • 134

<机器学习>(周志华)读书笔记 -- 第六章 支持向量机

支持向量机是当下比较经典的一个算法,其中台湾大学林智仁教授还开发了一个简单快速的svm库--libsvm这个svm的程序在目前各个机器学习包中都有广泛的嵌入式用。但是我们仍然需要对SVM的原理进一步了...
  • geng333abc
  • geng333abc
  • 2017-07-25 16:52:50
  • 439

C++数据结构学习笔记(六)

元素的访问 1 V.get(r) V.get(r,e)接口 2 重载[] template T& Vector::operator[](Rank r) const{return ...
  • zjx0126
  • zjx0126
  • 2018-01-22 14:01:14
  • 19

《机器学习》--周志华 (第六章学习笔记)

支持向量机间隔与支持向量​ 在样本空间中寻找一个超平面,将不同类别的样本分开​ “正中间”的:鲁棒性最好,泛化能力最强​ ​ 对偶问题 拉格朗日乘子法第...
  • Cristal_yin
  • Cristal_yin
  • 2017-07-30 08:31:21
  • 620

【读书笔记】卧底经济学

第一章 你喝咖啡,谁赚钱 星巴克为什么风靡?是他的服务很好,口味很佳,事实这两项都不是,真正的原因和房价一样,那就是位置,位置,位置!为了那个位置他们会和房东签排他协议,否则绝不入驻。那些昂贵的位置...
  • hellokangning
  • hellokangning
  • 2013-12-18 22:28:37
  • 1618

Accelerated C++学习笔记6<使用顺序容器并分析字符串>

第5章  使用顺序容器并分析
  • u010555622
  • u010555622
  • 2014-05-21 01:42:22
  • 1046

第一行代码第二版(郭霖著)笔记之第六章(详解持久化技术)

本篇文章详细介绍了“文件存储”“SharedPreferences存储”“SQLite数据库存储”“使用LitePal操作数据库”四大方面的内容,看完本篇文章一定会对数据存储的持久化技术有更深入的了解...
  • fkq_2016
  • fkq_2016
  • 2017-05-12 15:33:06
  • 1063

实变函数与泛函分析基础第六章答案 程其襄编

  • 2010年05月29日 11:42
  • 119KB
  • 下载
收藏助手
不良信息举报
您举报文章:第六章-函数笔记
举报原因:
原因补充:

(最多只允许输入30个字)