View Javadoc
1   /*
2    * MIT License
3    * Copyright (c) 2006-2025 JMockit developers
4    * See LICENSE file for full license text.
5    */
6   package integration.tests.loops;
7   
8   import java.util.Collection;
9   import java.util.Iterator;
10  import java.util.List;
11  
12  public class ForStatements {
13      void forInSeparateLines() {
14          for (int i = 0; i < 2; i++) {
15              System.gc();
16          }
17      }
18  
19      void forInSingleLine(int i) {
20          // @formatter:off
21          for (; i < 2; i++) { System.gc(); }
22          // @formatter:on
23      }
24  
25      int forEachArrayElement(int... values) {
26          int sum = 0;
27  
28          for (int value : values) {
29              sum += value;
30          }
31  
32          return sum;
33      }
34  
35      String forEachCollectionElement(List<String> values) {
36          StringBuilder result = new StringBuilder();
37  
38          for (String value : values) {
39              result.append(value);
40          }
41  
42          return result.toString();
43      }
44  
45      void forUsingIterator(Collection<? extends Number> values) {
46          for (Iterator<? extends Number> itr = values.iterator(); itr.hasNext();) {
47              Number value = itr.next();
48  
49              if (value.intValue() == 0) {
50                  itr.remove();
51              }
52          }
53      }
54  
55      int forWithBreakAndContinue(int i) {
56          for (; i < 2; i++) {
57              if (i == 1) {
58                  i = 3;
59                  continue;
60              }
61  
62              if (i < 0) {
63                  break;
64              }
65          }
66  
67          return i;
68      }
69  
70      void nestedFor(List<Integer> list) {
71          for (Integer i : list) {
72              for (int j = 0; j < i; j++) {
73                  i++;
74              }
75          }
76      }
77  
78      boolean forWithNestedIfWhichReturns(int valueToSearch, int... values) {
79          for (int value : values) {
80              if (value == valueToSearch) {
81                  return true;
82              }
83          }
84  
85          return false;
86      }
87  }