在函数的设计中,函数中经常会出现return语句,这里讲一下return语句的使用注意事项。
注意事项
- return后面可以是一个数值,也可以是一个表达式,如果是表达式则先执行表达式,再返回表达式的结果。
- return后边也可以什么都没有,直接写return;这种写法适合函数返回类型是void的情况。
- return返回的值和函数返回类型不一致,系统会自动将返回的值隐式转化为函数的返回类型。
- return语句执行后,函数就彻底返回,后边的代码不再执行。(该处有点像break,但它不能用于自定义函数,而是用于switch语句和循环语句)
- 如果函数中存在if等分支语句,则要保证每种情况下都有return返回,否则出现编译错误。
接下来,进行举例
1.的举例
#include<stdio.h> int Add(int x, int y) { return x + y;//这里就是先执行表达式,再返回表达式的结果 } int main() { int a, b; scanf("%d %d", &a, &b); int r = Add(a, b);//调用加法Add函数,求和的结果放在r中 printf("%d", r); }
#include<stdio.h> int Add(int x, int y) { int z = x + y; return z; } int main() { int a, b; scanf("%d %d", &a, &b); int r = Add(a, b);//调用加法Add函数,求和的结果放在r中 printf("%d", r); }
2,4的举例
计算从1-n的和
//计算从1-n的和 #include<stdio.h> void test(int n)//void表明函数返回类型是空 //该处是定义函数 { if (n <= 0) return;//若执行该语句,后边代码不执行,则验证注意事项4;return后面什么也没有,验证v注意事项2 int i = 0; int sum = 0; for (i = 1; i <= n; i++) { sum += i; } printf("%d\n", sum); } int main() { int n; scanf("%d", &n); test(n);//自定义函数 return 0; }
输入-1,执行return语句,程序结束。输入5,跳过if语句,执行for循环。(不清楚自定义函数的可以看博主的这个文章(https://blog.csdn.net/wait___wait/article/details/135047014
点击链接就可以观看啦,里面也介绍了参数,这两篇文章一起看,就会有更好的了解哦☺☺)
3.的举例
#include<stdio.h> int test()//由于实参为空,所以形参也为空 { return 3.14; }//函数返回类型为整型,所以3.14强制转换为3 int main() { int r = test();//实参 printf("%d\n", r);//打印3 return 0; }
5.的举例
#include<stdio.h> //判断一个数是能不能被2整除(即一个正整数n是不是偶数) //不能被2整除则返回1 //能被2整除则返回0 int test(int n) { if (n % 2 == 1) return 1; else return 0; } int main() { int n = 0; scanf("%d", &n); int ret = test(n); printf("%d", ret); return 0; }//输入3,返回1,即打印1
若注释掉return 1;则违反了注意事项5,出现报错“不是所有的控制路径都有返回值”
(已经看到这里了,不如点个赞,和关注再离开吧☼☺,这是对我最大的鼓励)