2016-03-03 110 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