前面的内容都是按顺序运行的,也就是谁的位置靠前,谁就会先运行,除非处在循环之中,并且能达到预设的条件,否则每行代码在一次运行中最多就只能实现一次。要想多次运行,就得再打一遍,这样代码会非常多。
那么有一种载体,可以把某一段代码包含进去,只要想用这段代码,只需要调用这个载体,就能实现这段代码。这就是函数。
比如要实现计算机的加减乘除,就可以创建四个函数。本次为简单计算机的加减乘除,也可以不用函数,但后面如果功能多起来,函数就显得很有必要了。总之函数的用处十分大,可以使我们的代码更易懂,而且按功能划分的函数后期想升级或者修改,都特别有帮助。
话不多说,直接上代码。
完整代码
(代码后有解析)
#include<iostream>
using namespace std;
int add(int,int);
int sub(int,int);
int mul(int,int);
int dev(int,int);
int main(){
int count;
int numberFirst=10,numberSecond=2;
count=add(numberFirst,numberSecond);
cout<<"ADD:"<<count<<endl;
count=sub(numberFirst,numberSecond);
cout<<"SUB:"<<count<<endl;
count=mul(numberFirst,numberSecond);
cout<<"MUL:"<<count<<endl;
count=dev(numberFirst,numberSecond);
cout<<"DEV:"<<count<<endl;
return 0;
}
int add(int num1,int num2){
return num1+num2;
}
int sub(int num1,int num2){
return num1-num2;
}
int mul(int num1,int num2){
return num1*num2;
}
int dev(int num1,int num2){
return num1/num2;
}
其中, 为了代码的结构性更好,我把主函数放在了前面,而加减乘除四个函数放在了后面,所以要声明函数。
int add(int,int);
int sub(int,int);
int mul(int,int);
int dev(int,int);
函数的声明也可以这样:
int dev(int num1,int num2);
声明函数首先是这个函数的类型,然后是函数名,括号里是参数的类型和参数的名称,由上面可知,参数名称可以不写。如果没有参数,那么括号里就不用写任何东西。并且,函数的类型和参数的类型一定要和创建的时候的类型一致。下图就是把add(int num1,int num2)的类型改成char,但是声明的时候是int,所以出现了报错。
如果自定义的函数在主函数后面且不声明(如果不想声明,那就只能是把自定义的函数放在主函数前面了),则会报错,如下图所示。
然后是返回值,只要不是void类型的函数就一定要返回相应的数据类型。就比如函数add(int num1,int num2),在创建函数的时候将其定义为int类型,所以要返回一个int类型(函数是什么类型就返回什么类型,如果是void则不用返回任何类型的数据),否则会报错。下图是把add(int num1,int num2)里的返回语句注释掉,没有返回值,所以报错。
最后是主函数,先声明一个int型的count变量,用来接收运算值,可以初始化也可以不初始化,一般初始化为0。再声明和初始化两个int型的numberFirst和numberSecond,用来做计算的数(后面可以升级为输入,即输入两个数来进行运算)。然后就是调用函数和打印,这里因为函数有返回值,所以可以直接把函数(实际上是返回值)赋值给count。运行结果如下图所示。
(欢迎提出建议)