函数

5 函数

5.1 函数的概念

 

IsSXH给它一个数字它可以立马告诉你是否为水仙花数

它是怎么判断的?不用管,只要用

在主程序中,我们一直调用isSXH就可以了

函数给我们的思想,对一个规模大,难度高的问题提供一个解决问题的

思路,将问题拆分,分解成规模小,难度小的问题,如果说,分解之后

问题依然很难,那么接着分解从,直到最后的问题足够小,

总之就是“大事化小”

  1. 需要找出1-100之内所有的素数,假设班里有个同学可以帮你

判断一个数是否是素数,那么这个同学就是函数(数字需要自己提供)

  1. 你想吃小龙虾,有人可以为你去买,有人可以帮你清洗,有人可以

帮你做虾,有人可以帮你剥壳,有人可以喂你吃,你只需要张嘴就好了

对于你来说,你只需要安排调度,这样的话就会非常轻松

函数的本质:就是一个功能,就是多条代码放在一起

定义y=f(x)=x^2+2x+3

F(3)=3^2+2*3+3=18

F(3)是将3代入到函数中

X就是自变量

Y就是因变量

5.2 函数的定义与调用

5.2.1 函数的定义

 

5.2.2 函数的调用

 

5.2.3函数的组成

  1. 函数名
  2. 参数
  3. 函数体:函数的功能,一般会有返回值,返回值就是结果

案例:判断一个数是否为素数(函数方法)

函数名:isPrime

参数:  n

 

5.3 参数传递

参数传递,就是将实参的值传给形参。通过调试我们可以看键,形参在函数

被调用之前是不存在的,当函数被调用的那一刻起,实参被创建,并且传递给

形参

参数传递有两种方式:值传递与引用传递

 

值传递

 

A的值并没有显示预期中的6,还是5,这是因为形参x与实参a是两个不同的

变量,x的变化与a没有任何的关系

引用传递

 

  1. value没有被显示修改,但是value确实加了1,因为x就是a,或者说

x是a的别名   专业一点就叫引用

常规类型的参数采用的是值传递,比如Number,String,Boolean

对象类型采用的是引用传递,Object

案例:验证100以内的数都符合角谷定理(函数方法)

角谷定理:对于一个大于1的整数n,如果n是偶数,则n = n / 2。如果n是奇数,

n = 3 * n +1。反复操作后,n一定为1

 

5.4 变量作用域

局部变量,就是在函数内部定义的变量,这个变量只能在函数内部使用,在

全局中不能使用,举个例子,三国时期,把曹操,刘备,孙权比喻成三个函数

那么曹操手下的将领是不会听刘备与孙权的命令的,刘备与孙权同理,他们手下

的兵只会听从自己老大的命令

 

在函数的内部定义一个变量,如果没有加上var,那么这个变量就会被认为是

全局变量

 

全局变量:在函数外部定义的变量,这个变量可以在全局进行使用。

举个例子:汉朝的皇帝发布命令,那么不管是曹操还是刘备或者孙权,都要

                     听皇帝的命令

      

冲突处理:就近原则

当函数中定义了一个与全局变量名字相同的变量,此时函数在定义前使用,

那么这个变量还是函数中的变量,(没给值)是underfind,不会使用全局变量

 

局部和全局同时定义了一个相同名字的变量时如何在局部变量里面访问全局变量

在局部给变量加一个window的前缀,据可以访问到全局的变量

 

案例:验证哥德巴赫猜想(函数方法)

哥德巴赫猜想:任意一个大于6的偶数都可以写成两个质数之和(质数就是素数)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值