扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
如果函数定义是: int func(...),那么写return 0;
成都创新互联服务项目包括齐齐哈尔网站建设、齐齐哈尔网站制作、齐齐哈尔网页制作以及齐齐哈尔网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,齐齐哈尔网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到齐齐哈尔省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
如果函数定义是: void func(...),那么写return;
如果仅想跳出循环,写break;
程序中途跳出,和结束是两个不同的概念。
1 要使程序中途跳出,可以使用return语句,跳出该函数。
如
int fun(int n)
{
int i;
if(n0) return -1;// 在n为负数下,提前退出该函数。
//执行正常功能。
for(i=0;in;i++)
printf("%d ", i);
}
2 要使程序提前结束, 可以调用exit()函数。
如
int fun(int n)
{
int i;
if(n0) exit(-1);// 在n为负数下,提前结束程序。
//执行正常功能。
for(i=0;in;i++)
printf("%d ", i);
}
3 二者区别:
a) 使用exit函数,会结束整个程序。 而使用return只是结束当前函数,还会到主调函数处继续运行。
b) 在main函数中使用return语句,等效于调用exit函数,同样会结束程序。
c) 调用exit函数时,需要引用头文件stdlib.h。
C/C++中,用return可以从任何子函数中退出返回到主调函数,而exit()是用来退出程序返回操作系统的。至于怕把{}搞混了,那你是不可能回避的,因为{}是C/C++的重要语句成份,而且写C/C++是提倡多用{}的——就是说不要轻易省掉,必要时还可以多加。可见,程序员们的经验是{}不仅不会搞混,而且有助于代码的阅读!
函数都是并列关系,不存在一个嵌套另一个的问题,只能是一个调用另一个,在其中又调用另一个,一层层调用,正常情况都只有一个返回出口,也是一层一层返回,不能跳过。
c语言中提前结束一个子函数,可以用return 语句返回。
实例:
//用于除法,a是被除数,b是除数,当b为0的时候不能做除法,此时可以将函数提前返回,不做除法运算。函数定义如下:
int func(int a,int b)
{
if(b==0){
return false;
}
return a/b;
}
C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。
C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。
因此解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:
1)你的两个子函数都是由返回值的函数
2)你选择的特殊值和函数正常的返回的取值不会冲突,不会引起二义性。
因此建议你的这个问题还是用C++ 的异常去解决比较好。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流