【发布时间】:2016-03-03 20:29:25
【问题描述】:
我想根据随机布尔值浏览从0 到NB_MAX 或从NB_MAX 到0 的表。
我尝试使用?: 运算符:
for (int i = (bool) ? 0 : NB_MAX; i < ((bool) ? NB_MAX: 0); i++) {
问题是在i++和i--之间切换。
怎么做?
【问题讨论】:
我想根据随机布尔值浏览从0 到NB_MAX 或从NB_MAX 到0 的表。
我尝试使用?: 运算符:
for (int i = (bool) ? 0 : NB_MAX; i < ((bool) ? NB_MAX: 0); i++) {
问题是在i++和i--之间切换。
怎么做?
【问题讨论】:
如果您在尝试时在 for 循环声明中插入三元运算符,则您的代码可读性不强。
生成两个 for 循环会更易读,其中一个根据条件输入。
if (bool)
{
for (int i = 0; i < NB_MAX; i++)
{
body(i);
}
}
else
{
for (int i = NB_MAX - 1; i >= 0; i--)
{
body(i);
}
}
【讨论】:
这应该可以解决问题:
for (int i = (bool) ? 0 : NB_MAX; (bool) ? i < NB_MAX : i > 0; i = (bool) ? i+1 : i-1) { }
【讨论】: