return和break的区别

 我来答
就烦条0o
2016-07-23 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
1)break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出.

2)continue 也是终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.

3)return 语句可被用来使 正在执行分支程序返回到调用它方法。(费解)

详说return

return表示中止当前函数的运行,并将操作权返回给调用者。
如果是在main函数中,表示将操作权返回给操作系统。

return不是必须要返回一个值。
void func(void)
{
......
......
return;
}

当然,就算不写return,在函数执行完毕后也会返回操作权给调用者。写return是一种清晰的风格,可以防止一些意外的错误。所以书上只说应该写,而不是必须写。
如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到“}”时会自动返回,这个问题其实你自己到机器上试一下就知道了。不过作为一个良好的编程习惯,每个函数都有返回语句倒是对的,这样更有可读性,并利于程序的维护~~~~

return 指令一个是返回一个指定数据给主调函数,

另外的一个作用就是 结束 所在函数的执行 ...

子函数中的运算是不能改变main()中已经定义的变量
int add(int a, int b)
{
int c;
c=a+b;
}
main()
{
int a=1,b=2, c=0;
add(a,b);
printf("/nc=%d/n", c);
}
你看看 最后结果还是c=0;
因为计算机执行一个程序的时候 他只看到main();
他十分忠诚的 从main()的第一句 一直执行到最后一句 ;
中间的那个 add()调用;
这时main()函数被挂起 ;
也就是停止运行 系统会把main()放在一块内存x中 ;
这时 系统会把一片内存y划分给add()函数;
也就是说 main()中的abc;和add()中的abc;
并不是同一个东西;
他们只是在数值上相等罢了;
系统首先把a;b;的值传给add;
然后运行;
c=3;
然后系统没有发现add中有return;
也就是 子函数做完了运算;
并没把内存y中的结果送给main();
这时候 add运行结束;
系统唤醒内存x中的main();
开始运行下一句 这时候 ;
add函数做的一切 都是白干了;
他并没有把他的结果上交给main()函数;
所以c仍然是0;
add(int a, int b)
{
int c;
c=a+b;
return c;
}
main()
{
int a=1, b=2, c=0;
c=add(a,b);
printf("/nc=%d/n",c);
/*还可以这样写*/
printf("/nc=%d/n",add(a,b));
}
想要通过子函数来改变main()中的东西;
有两个方法:1 return ; 2 通过指针;
这里 指针我就不说了 到了c#就没有指针了 我是学c的 才大一 ;
我们用的最多的是指针;一般不用return ;
冬过春来秋等收
2016-07-23 · TA获得超过262个赞
知道小有建树答主
回答量:751
采纳率:25%
帮助的人:788万
展开全部
break是用来跳出循环的,例如for,while,do-while都可以跳出,但不跳出函数 return是使整个函数返回的,后面的不管是循环里面还是循环外面的都不执行 再说一下,break语句通常用在循环语句和开关语句中,当break语句用于do-while、for、while循...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式