打印

求教这段代码中return 和 break有什么区别

[复制链接]
3978|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
blueshwu|  楼主 | 2012-3-22 22:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Detection()
{

state=P2;


metal_state=state&0x03;//0000 0011

edge_state=state&0xF0;//1111 0000

///bar_state=state&0x0C;//0000 1100

switch(bar_state){

case 0x04:   cur_state=2;return;//0000 0100


case 0x08:   cur_state=1;return;//0000 1000   

case 0x00:   cur_state=3;return;//0000 0000


//default:   if((cur_state==3)||(cur_state==4))cur_state=1 ;

}

switch(metal_state){

case 0x01: cur_state=3;return;  //0000 0001   

case 0x02: cur_state=4;return;  //0000 0010   

}


这是一朋友写的代码,我觉得switch里面应该用break。return的功能是不是就结束整个函数了?
而break只是结束这个switch语句?另外return没有返回值也可以吗?


实际用这个代码是好用的。就像了解下区别。

相关帖子

沙发
john_lee| | 2012-3-22 23:26 | 只看该作者
return;就是直接退出函数了。由于你的函数是void,所以不需要返回值。
break;是跳出循环和switch。

使用特权

评论回复
板凳
HWM| | 2012-3-22 23:29 | 只看该作者
如果“break”点本意就是跳出此子程序的话,用return更好。否则跳出switch语句后还要返回一次,多此一举了。子程序的返回类型是void说明无需返回数据,故return就不必带返回数据。

使用特权

评论回复
地板
yewuyi| | 2012-3-23 08:23 | 只看该作者
此处相当于省略了break

使用特权

评论回复
5
coody| | 2012-3-23 10:44 | 只看该作者
如果SWITCH后面还有别的程序,则break和return就有差别了

使用特权

评论回复
6
blueshwu|  楼主 | 2012-3-23 22:07 | 只看该作者
懂了。。谢谢你们

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

40

帖子

0

粉丝