在C++语言部分,循环,数组,函数这三个都十分常用,循环与数组都学完了,现在到函数了。
函数的好处
方便
我们举个例子:
如果让你输入3个数,来判断这三个数是否为素数。
没学函数你会用三个循环或者循环嵌套。
学了函数后你会大大减少代码量(有时候)。
并且还能做到一些循环做不到的(学了递归就知道了)。
函数的定义
假设我们定义一个函数叫做sushu()来判断某个数是否为素数。
怎应当这样定义呢?
这样:
bool sushu(int n)
你判断n是否为素数只需要sushu(n)就行了。
前面的数据类型是函数的返回值的类型。
如果你没有返回值,那就是void类型的。
函数括号内的变量就是接受判断的值,我们称这个值为 (忘记了翻翻资料) 实参。
而你定义函数时的写的那个n叫做形参。
如果你定义了一个全局变量,又在函数后面定义了一个形参,在函数内部会优先使用形参。
函数的内容
函数就是“信息学中的公式”(我这么称呼),就是按照特定的步骤进行某些操作,比如求阶乘的函数:
int js(int n) {
int sum=1;
for(int i=1;i<=n;i++) {
sum*=i;
}
return sum;
}
最后的return sum就是返回sum这个值,不知道你们注意到没有,每次程序运行结束后都会显示这个:
为什么是0?
因为你写的是return 0,如果你改成return 1
这个值就是1了,函数中的return就是代表这个函数的值。
比如一个函数:
int sum()
{
return 1;
}
那么我们在main函数中写
int a=sum();
cout<<a<<endl;
就会输出1。
函数的提前声明
我们接着看一个程序:
#include<bits/stdc++.h>
using namespace std;
int main() {
A();
return 0;
}
void A()
{
cout<<"Yes!"<<endl;
}
编译后报错:
提示你没有定义A()函数。
为什么会这样呢?我们不是在后面定义了吗?
原因就是你是在后面定义的,所以这时我们需要提前声明函数。
这样就行了:
#include<bits/stdc++.h>
using namespace std;
void A();
int main() {
A();
return 0;
}
void A()
{
cout<<"Yes!"<<endl;
}
下期预告
递归算法