File tree Expand file tree Collapse file tree
core-java-modules/core-java-lang-syntax/src
main/java/com/baeldung/breakloop
test/java/com/baeldung/breakloop Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package com .baeldung .breakloop ;
2+
3+ public class LoopBreaking {
4+
5+ public String simpleBreak () {
6+ String result = "" ;
7+ for (int outerCounter = 0 ; outerCounter < 2 ; outerCounter ++) {
8+ result += "outer" + outerCounter ;
9+ for (int innerCounter = 0 ; innerCounter < 2 ; innerCounter ++) {
10+ result += "inner" + innerCounter ;
11+ if (innerCounter == 0 ) {
12+ break ;
13+ }
14+ }
15+ }
16+ return result ;
17+ }
18+
19+ public String labelBreak () {
20+ String result = "" ;
21+ myBreakLabel :
22+ for (int outerCounter = 0 ; outerCounter < 2 ; outerCounter ++) {
23+ result += "outer" + outerCounter ;
24+ for (int innerCounter = 0 ; innerCounter < 2 ; innerCounter ++) {
25+ result += "inner" + innerCounter ;
26+ if (innerCounter == 0 ) {
27+ break myBreakLabel ;
28+ }
29+ }
30+ }
31+ return result ;
32+ }
33+
34+ public String usingReturn () {
35+ String result = "" ;
36+ for (int outerCounter = 0 ; outerCounter < 2 ; outerCounter ++) {
37+ result += "outer" + outerCounter ;
38+ for (int innerCounter = 0 ; innerCounter < 2 ; innerCounter ++) {
39+ result += "inner" + innerCounter ;
40+ if (innerCounter == 0 ) {
41+ return result ;
42+ }
43+ }
44+ }
45+ return "failed" ;
46+ }
47+ }
Original file line number Diff line number Diff line change 1+ package com .baeldung .breakloop ;
2+
3+ import org .junit .jupiter .api .Test ;
4+
5+ import static org .junit .jupiter .api .Assertions .assertEquals ;
6+
7+ class LoopBreakingUnitTest {
8+
9+ private LoopBreaking loopBreaking = new LoopBreaking ();
10+
11+ @ Test
12+ void whenUsingBreak_shouldBreakInnerLoop () {
13+ assertEquals ("outer0inner0outer1inner0" , loopBreaking .simpleBreak ());
14+ }
15+
16+ @ Test
17+ void whenUsingLabeledBreak_shouldBreakInnerLoopAndOuterLoop () {
18+ assertEquals ("outer0inner0" , loopBreaking .labelBreak ());
19+ }
20+
21+ @ Test
22+ void whenUsingReturn_shouldBreakInnerLoopAndOuterLoop () {
23+ assertEquals ("outer0inner0" , loopBreaking .usingReturn ());
24+ }
25+ }
You can’t perform that action at this time.
0 commit comments