我有四個foreach循環遍歷集合並根據條件做一些事情。下面是我現在寫代碼:如何打破多個foreach循環?
boolean breakFlag = false;
String valueFromObj2 = null;
String valueFromObj4 = null;
for(Object1 object1: objects){
for(Object2 object2: object1){
//I get some value from object2
valueFromObj2 = object2.getSomeValue();
for(Object3 object3 : object2){
for(Object4 object4: object3){
//Finally I get some value from Object4.
valueFromObj4 = object4.getSomeValue();
//Compare with valueFromObj2 to decide either to break all the foreach loop
breakFlag = compareTwoVariable(valueFromObj2, valueFromObj4);
if(breakFlag){break;}
}//fourth loop ends here
if(breakFlag){break;}
}//third loop ends here
if(breakFlag){break;}
}//second loop ends here
if(breakFlag){break;}
}//first loop ends here
主要對象(代碼中的對象)來自第三方供應商的SDK,所以我不能改變的那部分東西。我想問問stackoverflow社區是否有更好的方法來打破所有四個foreach循環。或者,如果有任何其他方式來重構此代碼,使其更具可讀性和可維護性。謝謝。
順便說一句,它是* for * not * foreach *。 – 2009-02-15 21:12:31
不,for(Object o:os)實際上被稱爲foreach或迭代器循環。 – Esko 2009-02-16 06:52:29
原始版本在代碼中有「foreach」。感謝您的編輯。 – royalGhost 2009-02-16 14:28:32