tempad
ReadyGo!技术成就梦想 >>交换技术 >> 突然发现自己有个概念好模糊,请教大家。就是有关switch 中,return和break

突然发现自己有个概念好模糊,请教大家。就是有关switch 中,return和break

ReadyGo!技术成就梦想 网络搜索 efish 2008-1-20 5:02:57

突然发现自己有个概念好模糊,请教大家。就是有关switch 中,return和break

楼主yangyunzhao(周南梦里人)2006-07-12 09:45:21 在 C/C++ / C++ 语言 提问

就是有关switch   中,return和break  
   
  比如  
   
  switch(i)  
  {  
        case   1:  
                    ***  
                    return   0;  
        case   2:  
                    ***  
                    return   0;  
  }  
   
  switch(i)  
  {  
        case   1:  
                    ***  
                    break;  
        case   2:  
                    ***  
                    break;  
  }  
   
  上面2种写法有区别么?请高手分析下,我的感觉好模糊。谢谢!!! 问题点数:20、回复次数:12Top

1 楼healer_kx(甘草(楼主揭贴吧,我们这些上班灌水的也不容易))回复于 2006-07-12 09:51:21 得分 5

return就太NB了。函数都返回了。。。这没有啥好说的吧?  
   
  break就是跳出当前的switch,for,while而已。跳出去还得执行函数后面其他的东西啊。  
  Top

2 楼yangyunzhao(周南梦里人)回复于 2006-07-12 09:58:20 得分 0

但是在这个switch中不是一样的么?  
  return   跳出了switch    
  而break不也是跳出switch么?Top

3 楼bing_huo(我是一个演员!)回复于 2006-07-12 10:00:14 得分 5

return   直接跳出函数了   执行流转到当前函数调用点的下一条语句开始执行  
  break   跳出当前的switch块   执行流转到当前switch块后的第一条语句开始执行Top

4 楼yangyunzhao(周南梦里人)回复于 2006-07-12 10:00:50 得分 0

晕,突然明白了。如果是  
  a(){  
        switch(i)  
            .  
            .  
            .  
        b();  
        c();              
  }  
  这个样子的话,return就直接退出a()函数了,而break只是跳出switch,接着执行b(),c()。  
  是这个样子的不?Top

5 楼jixingzhong(瞌睡虫·星辰)回复于 2006-07-12 10:14:09 得分 10

对,  
  return   是从整个函数中退出,  
  break   只是从这个函数的   swtich   部分退出来,后面的语句继续执行   ...Top

6 楼jixingzhong(瞌睡虫·星辰)回复于 2006-07-12 10:15:04 得分 0

另外,  
  楼主如果碰到了不同的写法感觉结果一样,  
  也完全没有必要奇怪,  
  程序本来就是灵活的东西,  
  没有固定的方式的,  
  同样的一个意思,  
  可以有很多中实现方式   ....Top

7 楼yangyunzhao(周南梦里人)回复于 2006-07-12 10:40:36 得分 0

嗯,明白了。谢谢楼上的Top

8 楼Heaven_Redsky(火骑士)回复于 2006-07-12 11:08:04 得分 0

return   在消息循环处理函数之类的东东里用的比较多些。呵呵。Top

9 楼lucky520()回复于 2006-07-12 20:53:07 得分 0

弱弱的问下  
  return   0,return   1有什么区别?Top

10 楼haojieguangxin()回复于 2006-11-05 09:27:43 得分 0

void     Traceback(int   i,int   j,int   s)  
  {  
          if(i==j)  
  return   ;  
  Traceback(i,s,s);  
  Traceback(s+1,j,s);  
  cout<<"Multiply   A"<<i<<","<<s;  
  cout<<"and   A"<<(s+1)<<","<<j<<endl;  
  }Top

11 楼haojieguangxin()回复于 2006-11-05 09:28:54 得分 0

瞌睡虫     能解释下这个return   吗?Top

12 楼haojieguangxin()回复于 2006-11-05 09:34:07 得分 0

你知道矩阵连乘的问题吧     这是输出函数     整不明白Top

责任编辑: efish 参与评论 查找更多:
相关文章
没分了。求好心人帮忙。! 没分了。求好心人帮忙。!
请大家帮帮忙,ASP实现智能搜索,有一个小问题 请大家帮帮忙,ASP实现智能搜索,有一个小问题
请教!关于DataWindow导入XML的问题? 请教!关于DataWindow导入XML的问题?
寻求批量添加的解决方案 寻求批量添加的解决方案
高手请帮忙,为什么我这样不能调用?? 高手请帮忙,为什么我这样不能调用??
准备购买空间,帮测试下速度了……测试者均有分送 准备购买空间,帮测试下速度了……测试者均有分送
====跪求TCP穿越NAT源代码,要含Client,Server,无聊者… ====跪求TCP穿越NAT源代码,要含Client,Server,无聊者请不要进来====
一个简单的条件查询问题 一个简单的条件查询问题
本人遇到了一个非常非常奇怪的问题!关于删除数据! 本人遇到了一个非常非常奇怪的问题!关于删除数据!
对话框控件的helpId属性是干什么用的 对话框控件的helpId属性是干什么用的
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn

分类导航
ReadyGo!技术成就梦想