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