Breaking out of nested loops (#7196)
* Added Maven profiles example. * Added break examples.
This commit is contained in:
parent
30cb9ad592
commit
9ee237c69c
@ -0,0 +1,47 @@
|
|||||||
|
package com.baeldung.breakloop;
|
||||||
|
|
||||||
|
public class LoopBreaking {
|
||||||
|
|
||||||
|
public String simpleBreak() {
|
||||||
|
String result = "";
|
||||||
|
for (int outerCounter = 0; outerCounter < 2; outerCounter++) {
|
||||||
|
result += "outer" + outerCounter;
|
||||||
|
for (int innerCounter = 0; innerCounter < 2; innerCounter++) {
|
||||||
|
result += "inner" + innerCounter;
|
||||||
|
if (innerCounter == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String labelBreak() {
|
||||||
|
String result = "";
|
||||||
|
myBreakLabel:
|
||||||
|
for (int outerCounter = 0; outerCounter < 2; outerCounter++) {
|
||||||
|
result += "outer" + outerCounter;
|
||||||
|
for (int innerCounter = 0; innerCounter < 2; innerCounter++) {
|
||||||
|
result += "inner" + innerCounter;
|
||||||
|
if (innerCounter == 0) {
|
||||||
|
break myBreakLabel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String usingReturn() {
|
||||||
|
String result = "";
|
||||||
|
for (int outerCounter = 0; outerCounter < 2; outerCounter++) {
|
||||||
|
result += "outer" + outerCounter;
|
||||||
|
for (int innerCounter = 0; innerCounter < 2; innerCounter++) {
|
||||||
|
result += "inner" + innerCounter;
|
||||||
|
if (innerCounter == 0) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "failed";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.baeldung.breakloop;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
class LoopBreakingUnitTest {
|
||||||
|
|
||||||
|
private LoopBreaking loopBreaking = new LoopBreaking();
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenUsingBreak_shouldBreakInnerLoop() {
|
||||||
|
assertEquals("outer0inner0outer1inner0", loopBreaking.simpleBreak());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenUsingLabeledBreak_shouldBreakInnerLoopAndOuterLoop() {
|
||||||
|
assertEquals("outer0inner0", loopBreaking.labelBreak());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenUsingReturn_shouldBreakInnerLoopAndOuterLoop() {
|
||||||
|
assertEquals("outer0inner0", loopBreaking.usingReturn());
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user