免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 27497 | 回复: 41
打印 上一主题 下一主题

[C] 设想, 改进C语言的break语句直接跳出多层循环,改进continue语句... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-29 15:47 |只看该作者 |倒序浏览
直接跳出多层循环,除goto语句外有没有其它好方法?

设想,为能直接跳出多层循环或多重switch语句,对break语句扩展:
break n; 直接跳出n层循环或第n层switch语句,“break;” 与 “break 0;”都是跳出当前循环或终止当前switch语句。


void main( void )
{
        while(1) /* 第1层循环 */
        {
                while(1)  /* 第2层循环 */
                {
                        while(1)  /* 第3层循环 */
                        {
                                 break 2; /* 在这儿直接跳出1、2、3层循环。 */                  
                        }
                }
        }
}

为能直接结束第n层循环的本次循环,对continue语句扩展:
continue n; 直接结束第n层循环的本次循环,“continue;” 与 “continue 0;”直接结束当前循环的本次循环。


void main( void )
{
        while(1) /* 第1层循环 */
        {
                while(1)  /* 第2层循环 */
                {
                        while(1)  /* 第3层循环 */
                        {
                                 continue 1; /* 在这儿直接结束第2层循环的本次循环。 */                  
                        }
                }
        }
}

[ 本帖最后由 tgbvc 于 2008-2-29 22:28 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-02-29 16:08 |只看该作者
原帖由 tgbvc 于 2008-2-29 15:47 发表
#include

void main( void )
{
        while(1) /* 第1层循环 */
        {
                while(1)  /* 第2层循环 */
                {
                        while(1)  /* 第3层循环 */
    ...

setjmp,longjmp
还有exit(),哈哈哈

论坛徽章:
0
3 [报告]
发表于 2008-02-29 16:09 |只看该作者
goto 吧。

论坛徽章:
0
4 [报告]
发表于 2008-02-29 16:16 |只看该作者
欢迎讨论,

论坛徽章:
0
5 [报告]
发表于 2008-02-29 16:29 |只看该作者
建议把此帖加精。

论坛徽章:
0
6 [报告]
发表于 2008-02-29 16:43 |只看该作者
C语言的goto不是提供了这样的手段吗? 你还想设计什么?
不过我觉得楼主应该先学做人, 再学做事.

论坛徽章:
0
7 [报告]
发表于 2008-02-29 16:50 |只看该作者
原帖由 scutan 于 2008-2-29 16:43 发表
C语言的goto不是提供了这样的手段吗? 你还想设计什么?
不过我觉得楼主应该先学做人, 再学做事.

goto 是不是很常用啊?

论坛徽章:
0
8 [报告]
发表于 2008-02-29 16:56 |只看该作者
原帖由 liulang0808 于 2008-2-29 16:50 发表

goto 是不是很常用啊?


在内核中确实很常用. 当然也不是滥用, 一般用在较少区域内还是比较可行的. 一味地指责它的不好也是不对的, 这一点感觉有些教科书做得过头了.

论坛徽章:
0
9 [报告]
发表于 2008-02-29 16:58 |只看该作者
原帖由 scutan 于 2008-2-29 16:43 发表
C语言的goto不是提供了这样的手段吗? 你还想设计什么?
不过我觉得楼主应该先学做人, 再学做事.


看你以前的回帖,不应该那么傻呀!傻孩子,goto是不建议经常使用的。
你先确定自己做男的还是女的,再来谈论做人好么,小P孩。

论坛徽章:
0
10 [报告]
发表于 2008-02-29 17:02 |只看该作者
你要的不就是goto的吗,没有什么东西符合你的要求又比goto更好吧,说实话,我又想起某个熟人
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP