2016-03-03 83 views
0

我想要浏览从0NB_MAX或从NB_MAX0的表,具体取决于随机布尔值。根据布尔值更改java中的内容

我试图用?:操作:

for (int i = (bool) ? 0 : NB_MAX; i < ((bool) ? NB_MAX: 0); i++) { 

的问题是i++i--之间切换。

如何做到这一点?

回答

1

这应该做的伎俩:

for (int i = (bool) ? 0 : NB_MAX; (bool) ? i < NB_MAX : i > 0; i = (bool) ? i+1 : i-1) { } 
+0

嗯,说最后一个布尔总是如此,我不明白为什么? – Kariamoss

+0

我仔细检查过它。表达式的第二个条件无效。我编辑了我的答案。现在应该工作正常。 –

+0

非常感谢!你为我节省了很多时间 – Kariamoss

2

如果您尝试在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); 
    } 
} 
+0

嗯,我会做了3,所以它不会是很多可读要么 – Kariamoss

+0

我不明白你的意思。你有3个循环?我在你的问题中只看到1个。 – rgettman

+0

这是同样的问题,所以我没有写过3次相同的东西 – Kariamoss