突然发现自己有个概念好模糊,请教大家。就是有关switch 中,return和break
突然发现自己有个概念好模糊,请教大家。就是有关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
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn
