2014-10-17 446 views
1

假設我們有一個整數元素數組x [N]。我怎麼能知道例如元素x [1]是否大於或等於同一個數組的所有其他元素? 我使用了for循環,但它不起作用,因爲我想檢查一個元素是否比其他所有元素都做得更好。如果我使用for循環,相反,如果元素大於其他元素之一,它會執行某些操作,這對我的目的是錯誤的。你能幫我嗎?Java如何將一個數組的元素與同一個數組的所有其他元素進行比較

這裏我的意思的例子:

for(int i = 0; i < num && i!= j; i++) { 
    if(elementiInseriti[j] >= elementiInseriti[i]) { 
     do something; 
    } 
} 
+0

你想選什麼? – Ketan 2014-10-17 10:24:29

回答

0

使用布爾變量

 boolean doSomething = true; 
     for(int i = 0; i < num && doSomething; i++) { 
      if(elementiInseriti[j] < elementiInseriti[i]) { 
       doSomething = false; 
      } 
     } 
     if (doSomething) 
      // do something 

如果elementiInseriti[j]比任何其他元素的更小的,標誌是假的,你贏了不要做點什麼。

1

你可以做

int x = 1; //position you wanna compare 
boolean state = true; 
for(int i = 0; i < elementiInseriti.length; i++) { 
    if(elementiInseriti[x] < elementiInseriti[i]) { 
     state = false; 
     break; //no need to check for other elements coz at least 1 lesser than the conpared 
    } 
} 
if(state) 
    // do your stuffs 
0

的基本想法是,你需要去整個陣列上,積累了boolean只要給定元素是最大的。 請注意,您不能必須在for循環,因爲這樣有i!=j條件將提前終止循環,只有前檢查對元素元素它在陣列中:

boolean isGreatest = true; 
for(int i = 0; i < elementiInseriti.length && isGreatest; i++) { 
    if (i != j && elementiInseriti[j] < elementiInseriti[i]) { 
     isGreatest = false; 
    } 
} 

if (isGreatest) { 
    // do something; 
} 
相關問題