如何在C ++中创建重复直到循环?而不是标准的While或For循环。我需要在每次迭代结束时检查条件,而不是在开始时检查。
答案 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)