Tôi có bốn vòng foreach lặp đi lặp lại thông qua các bộ sưu tập và dựa trên một điều kiện làm điều gì đó. Đây là mã mà tôi đang viết bây giờ:Làm thế nào để phá vỡ nhiều vòng lặp 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
Đối tượng chính (đối tượng trong mã) đến từ nhà cung cấp bên thứ ba SDK, vì vậy tôi không thể thay đổi bất cứ điều gì trên phần đó. Tôi muốn hỏi cộng đồng stackoverflow nếu có một cách tiếp cận tốt hơn để phá vỡ tất cả bốn vòng lặp foreach. Hoặc nếu có cách nào khác để cấu trúc lại mã này để làm cho nó dễ đọc hơn và dễ bảo trì hơn. Cảm ơn.
Btw, đó là * cho * không * foreach *. –
Không, cho (Object o: os) thực sự được gọi là vòng lặp foreach hoặc iterator. – Esko
Phiên bản gốc có "foreach" trong chính mã. Cảm ơn bạn đã chỉnh sửa. – royalGhost