在布尔值上循环
Loop over a Boolean
可能重复:
如何在布尔值(false和true(上编写"for"循环
我想执行两次相同的任务,bool flag
第一次为true,第二次为false。有没有一种优雅的方法可以做到这一点(也许可以使用循环(?
我的想法是做如下的事情,但这太复杂了。
bool flag = true;
for(int i = 0; i < 2; ++i, flag = !flag)
{
// ...
}
将其放入函数中,以flag
为参数。调用该函数两次。
由于您在Thomas的回答中说过必须向函数传递大量参数,因此考虑lambda:
int param1;
bool param2;
...
auto doWork = [&](bool flag){ //<- capture all local variables by reference
... do work with params ...
};
doWork(true);
doWork(false);
通过这种方式,您可以封装工作代码,不必乏味地传递任何参数,而且仍然可以明显地看到您调用了两次代码。
我发现了一个使用do-while循环的好方法。
bool flag = false;
do
{
// ...
flag = !flag;
}
while(flag)
由于do-while循环中的代码至少执行一次,所以我可以在最后切换标志,只运行两次。
在函数中调用它的解决方案可能是最好的,但您也可以这样做:
for( int i = 0; i < 2; ++i ) {
bool flag = i == 0;
...
相关文章:
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 变量定义到C++布尔值转换
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 重载更少,则运算符返回相反的布尔值
- 将此布尔值传递给此函数的最有效方法是什么?
- 如何设置 c++ 类的布尔值?
- 布尔值向量的基于范围 for 循环
- 对于完成布尔值设置为 true 后未停止的循环
- 如何使用布尔值(C++)退出while循环
- 如何在while循环C++中使用布尔值
- 布尔值在 for 循环中没有变化
- 对循环和字符串函数中的指针的操作以及布尔值
- 在结束取决于布尔值的 do/while 循环时遇到问题 - C++
- 如何在一段时间循环中使用按键切换布尔值
- C++, (GLUT) - 在显示循环中维护布尔值的全局向量 - 使程序崩溃
- Str[i] 在 for 循环中自动进行布尔值检查
- 如何在布尔值(false和true)上编写“for”循环
- While循环在使用布尔值(C++)的程序中不起作用
- 如何用布尔值跳出while循环
- 在布尔值上循环