2014-09-03 44 views
0

從我一直在讀的內容來看,Java中的「:」充當了if/then/else語句。在我的代碼中,我想用它應該代表的實際代碼替換這個運算符,但是我想出了一個大腦屁。將這個冒號寫在if/else語句中是否可能?

int array[] = new int[]{x,y,z}; 
int neg = 0; 
for (int n : array) 
{ 
    if (n<0) { 
    neg++; 
    } 
} 

基本上我試圖讀取該陣列,並列出底片的數量,但我想嘗試沒有該運營商或for語句。我覺得它可能(因爲我正在處理數組中的有限數量的整數),但我不完全確定如何在沒有賦值時將int n寫入if/else語句。有點在腦屁。

+4

你讓條件運算符('?:')與for-each循環混淆。請參閱文檔。 – SLaks 2014-09-03 02:58:03

回答

0

For-Each operator:不同於三元運算符(JLS-15.25:。你可以這樣做

// if (n<0) { 
// neg++; 
// } 
neg += (n < 0) ? 1 : 0; 
0

在代碼的下面片斷你說在陣列檢查每個INTñ如果n小於0,如果這是真的加1負。

for (int n : array) 
{ 
    if (n<0) { 
    neg++; 
    } 
} 

你還是不得不做

for(int n : array) 

但可以做內部的,因此檢查

neg += (n < 0) ? 1 : 0; 

翻譯爲,如果n小於0,則加1否定,如果不加0的話。

這裏有一些很好的例子。 http://alvinalexander.com/java/edu/pj/pj010018

相關問題