当前位置:  开发笔记 > 编程语言 > 正文

是否有可能在c ++中有一个while循环,使得检查在循环的中间而不是开始或结束?

如何解决《是否有可能在c++中有一个while循环,使得检查在循环的中间而不是开始或结束?》经验,为你挑选了2个好方法。

我想有一个while循环做类似下面的事情,但这可能在c ++?如果是这样,语法如何?

do {
    //some code
    while( expression to be evaluated );
    // some more code
}

我希望一旦while语句决定表达式不再为真,就会退出循环(即如果表达式为false,则表示不执行某些代码)



1> Sean McCauli..:

你可以做:

while (1) {
   //some code
   if ( condition) {
       break;
   }
   // some more code
}



2> outis..:

一点背景和分析:你所要求的我称之为" Dahl循环 ",以Simula成名的Ole-Johan Dahl命名.正如Sean E.所说,C++没有它们(ima的答案放在一边),尽管其他一些语言(尤其是Ada).它可以取代"do-while"和"while-do"循环,这使它成为一个有用的结构.更一般的情况允许任意数量的测试.虽然C++没有Dahl循环的特殊语法,但Sean McCauliff和AraK的答案完全等同于它们."while(true)"循环应该由编译器转换为简单的跳转,因此编译的版本与假设的Dahl循环的编译版本完全无法区分.如果你发现它更具可读性,你也可以使用

do {
    ...
} while (true);

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有