對於代碼質量的原因,我想稍微重構一下我的代碼,以便在我的循環中只使用一條break
語句。但我不知道我可以做這SonarQube是亞慶我的方式...如何避免在循環中使用多個「break」語句?
這裏是我的代碼:
for (Integer integer: integerKey.keySet()) {
if (map.containsKey(integerKey.get(integer))) {
TypeValue value = map.get(integerKey.get(integer));
sb.append(integerKey.get(integer)).append(":");
sb.append(encodeValue(value));
sb.append("|");
if (integerKey.get(integer).equals(min)) {
break;
}
} else if (integerKey.get(integer) <= min){
TypeValue value = map.get(min);
sb.append(min).append(":");
sb.append(encodeValue(value));
sb.append("|");
break;
} else {
sb.append(integerKey.get(integer)).append(":");
sb.append("0");
sb.append("|");
}
}
我願做同樣的事情,但只使用一個break
但我不是當然,在這種情況下,我只能寫出一個if
條件,而不是if-elseif-else
。
任何想法?
謝謝。
備註:如果需要鍵和值,可以避免查找(Map.get),所以迭代entrySet效率更高。 – Puce
附加註意事項:無論如何,'integerKey.get(integer)'可以被「緩存」,所以你不必每次迭代多次執行查找。最好的做法是使用入門套件,只需獲得入門的關鍵和價值,就像Puce已經說過的一樣。 – Thomas