View Javadoc
1   /*xml
2   <module name="Checker">
3     <module name="TreeWalker">
4       <module name="CyclomaticComplexity">
5         <property name="max" value="4"/>
6         <property name="tokens" value="LITERAL_WHILE, LITERAL_DO"/>
7       </module>
8     </module>
9   </module>
10  */
11  package com.puppycrawl.tools.checkstyle.checks.metrics.cyclomaticcomplexity;
12  
13  // xdoc section -- start
14  class Example2 {
15    int a, b, c, d, e, n;
16    // violation below, 'Cyclomatic Complexity is 5 (max allowed is 4)'
17    public void testMethod1() { // 1, function declaration
18      while (a < b && a > c) { // 2, while
19        fun1();
20      }
21      if (a == b) {
22        do { // 3, do
23          fun1();
24        } while (d==a);
25      } else if (c == d) {
26        while (c > 0) { // 4, while
27          fun1();
28        }
29        do { // 5, do-while
30          fun1();
31        } while (a==d);
32      }
33    }
34  
35    public void testMethod2() {
36      if (a == b) {
37        fun1();
38      } else if (a == 0
39        && b == c) {
40        if (c == -1) {
41          fun1();
42        }
43      } else if (a == c
44        || a == d) {
45        fun1();
46      } else if (d == e) {
47        try {
48          fun1();
49        } catch (Exception e) {
50        }
51      } else {
52        switch(n) {
53          case 1:
54            fun1();
55            break;
56          case 2:
57            fun1();
58            break;
59          case 3:
60            fun1();
61            break;
62          default:
63            break;
64        }
65      }
66      a = a > 0 ? b : c;
67    }
68    private void fun1() {}
69  }
70  // xdoc section -- end