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

[复制链接]
4782|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
coody 发表于 2012-3-23 10:44 | 显示全部楼层
如果SWITCH后面还有别的程序,则break和return就有差别了
 楼主| blueshwu 发表于 2012-3-23 22:07 | 显示全部楼层
懂了。。谢谢你们
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部