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