如何在 C++ 中创建重复直到循环?与标准的 While 或 For 循环相反。我需要在每次迭代结束时检查条件,而不是在开始时。
问问题
170812 次
7 回答
49
do
{
// whatever
} while ( !condition );
于 2009-07-02T23:38:56.687 回答
9
当您想在循环开始时检查条件时,只需在标准while
循环上否定条件:
while(!cond) { ... }
如果最后需要它,请使用do
...while
循环并否定条件:
do { ... } while(!cond);
于 2009-07-02T23:54:39.590 回答
8
您可以使用宏来模拟重复直到语法。
#define repeat do
#define until(exp) while(!(exp))
于 2012-08-29T13:24:10.077 回答
2
例如,如果您想让一个循环在计算完一个组中的所有人后停止。我们将认为值 X 等于组中的人数,并且计数器将用于对组中的所有人进行计数。写
而(!条件)
代码将是:
诠释 x = 人;
整数计数器 = 0;
而(x!=计数器)
{
计数器++;
}
返回0;
于 2014-10-13T17:06:16.587 回答
2
只需使用:
do
{
//enter code here
} while ( !condition );
所以它的作用是,它将你的“检查条件”部分移到最后,因为while
它在最后。所以它只在运行代码后检查条件,就像你想要的那样
于 2017-03-07T02:22:53.380 回答
1
重复应该是一个简单的循环 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)
于 2018-02-25T14:50:27.437 回答
1
这也可以工作
int repeat;
repeat = 0;
//to repeat once
do {
....
repeat + 1;
} while(repeat < 1);
这当然是假设您只想重复一次,因此您可以更改重复的值,而不是从while();
条件的可变数量中增加的数量。此代码适用于 C++ 17,但我不确定是否适用于其他版本。
于 2021-02-28T19:11:48.940 回答