adh*_*lon 4 c++ loops while-loop do-while
我想有一个while循环做类似下面的事情,但这可能在c ++?如果是这样,语法如何?
do {
//some code
while( expression to be evaluated );
// some more code
}
我希望一旦while语句决定表达式不再为真,就会退出循环(即如果表达式为false,则表示不执行某些代码)
Sea*_*iff 12
你可以做:
while (1) {
//some code
if ( condition) {
break;
}
// some more code
}
Run Code Online (Sandbox Code Playgroud)
一点背景和分析:你所要求的我称之为" 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);
Run Code Online (Sandbox Code Playgroud)