你如何在C ++中创建一个Repeat-Until循环?

时间:2009-07-02 23:36:19

标签: c++ loops for-loop while-loop

如何在C ++中创建重复直到循环?而不是标准的While或For循环。我需要在每次迭代结束时检查条件,而不是在开始时检查。

7 个答案:

答案 0 :(得分:40)

do
{
  //  whatever
} while ( !condition );

答案 1 :(得分:9)

如果要在循环开始时检查条件,只需在标准while循环上取消条件:

while(!cond) { ... }

如果最后需要它,请使用do ... while循环并否定条件:

do { ... } while(!cond);

答案 2 :(得分:6)

您可以使用宏来模拟repeat-until语法。

#define repeat do
#define until(exp) while(!(exp))

答案 3 :(得分:2)

例如,如果您希望在计算组中的所有人员时停止循环。我们将X值视为等于组中人员的数量,计数器将用于计算组中的所有人员。写

  

而(!条件)

代码将是:

  

int x = people;

     

int counter = 0;

     

while(x!= counter)

     

{

     

计数器++;

     

}

     

返回0;

答案 4 :(得分:2)

只需使用:

do
{
  //enter code here
} while ( !condition );

所以它的作用是,它将'检查条件'部分移动到最后,因为while在最后。所以它只在运行代码后检查条件,就像你想要的那样

答案 5 :(得分:1)

这个也可以

app.config["MONGODB_HOST"] = "mongodb://user:password@hostname:port/db_name?ssl=true&ssl_cert_reqs=CERT_REQUIRED&ssl_ca_certs={your_cert_path}"

这当然是假设您只想重复一次,因此您可以更改重复的值,而不是根据 int repeat; repeat = 0; //to repeat once do { .... repeat + 1; } while(repeat < 1); 条件的变量数量增加的数量。此代码适用于 C++ 17,但我不确定是否适用于其他版本。

答案 6 :(得分:0)

重复应该是一个简单的循环n次循环...一个无条件版本的循环。

#define repeat(n) for (int i = 0; i < n; i++) 

repeat(10) {
    //do stuff
}

你还可以添加一个额外的barce来隔离i变量

#define repeat(n) { for (int i = 0; i < n; i++) 
#define endrepeat }

repeat(10) {
    //do stuff
} endrepeat;

[编辑] 有人发布了关于传递除值之外的其他内容的担忧,例如表达式。只需更改为循环即可向后运行,导致表达式仅被评估一次

#define repeat(n) { for (int i = (n); i > 0; --i)