从函数中返回值

◇◆丶佛笑我妖孽 提交于 2020-02-24 21:14:43

1.从函数中返回值
如果你的函数要返回一个结果,那么你就需要用return把那个结果交给调用它的地方
例一:
//素数求和

int isPrime(int i)//idPrime有一个返回的类型,是int类型,这个isPrime会返回一个int的结果
//所以要安排一个return语句,让它去返回一个int
{
    int ret=1;
    int k;
    for(k=2;k<i-1;k++){
        if(i%k==0){
            ret=0;//发现不是素数,则让ret=0
            break;
        }
    }
    return ret;
}

例二:
int max(int a,int b)
{
int ret;
if(a>b){
ret=a;
}else{
ret=b;
}
return ret;
}

return语句做两件事,第一件,一旦遇到return, 停止函数的执行,不再向下进行,如果return后面有值,要送回去一个值
所以return有两种写法:
return;
return 表达式;,它要把表达式的值交给调用这个函数的地方

int max(int a,int b)
{
int ret;
if(a>b){
    ret=a;
}else{
ret=b;
}
return ret;
}
int main()
{
   int a,b,c;
   a=5;
   b=6;
   c=max(10,12);
   c=max(a,b);
   c=max(c,23);
   printf("%d\n",max(a,b));//6
    return 0;
}

2.一个函数里面可以出现多个return语句,而且这些return也不一定要放在最后
这样做没有错,但不符合单一出口的理念,
不好在于,这样的函数有很多条语句可以用来离开,有很多条语句可以用来传递值到外面,
将来如果想要对这些出口做修改,就要修改很多地方

int max(int a,int b)
{
if(a>b){
    return a;
}else{
return b;
}
}
int main()
{
   int a,b,c;
   a=5;
   b=6;
   c=max(10,12);
   c=max(a,b);//能够看出,函数能够返回值以后,可以把这个值赋给变量
   c=max(c,23);
   c=max(max(c,a),5);//也可以把这个值再传递给函数,如此句max拿另外一次max的使用来作为它的参数
   printf("%d\n",max(a,b));
   max(12,13);//甚至可以丢弃
   //因为有的时候,调用函数的目的并不是要去看它返回给我们的结果,而是要它的副作用,
   //在这个函数执行的过程当中,可能给你做一些别的事情,比如说输出个什么东西等等
    return 0;
}

3.没有返回值的函数
void 函数名(参数表) void表明这个函数不返回任何的结果
不能使用带值的return
可以没有return,因为当函数运行到它的最后一行,结束的大括号}以后,它自己就会回去
调用的时候不能做返回值的赋值,因为它不返回值嘛,所以你就不能把它的值交给别的什么变量或者参与什么运算

注意:如果函数有返回值,则必须使用带值的return
void sum(int begin,int end)
{
int i;
int sum=0;
for(i=begin;i<=end;i++){
sum+=i;
}
printf("%d到%d的和是%d\n",begin,end,sum);
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!