1 /* /nodynamiccopyright/ */ // hard coded linenumbers in other tests - DO NOT CHANGE
2 /*
3  * Debuggee which exercises various types of control flow
4  */
5 
6 class ControlFlow {
7     boolean b = true;
8     int n = 22;
9 
main(String args[])10     public static void main(String args[]) throws Exception {
11         (new ControlFlow()).go();
12     }
13 
go()14     void go() throws Exception {
15         if (b) {
16             System.out.println("if, no else");
17         }
18 
19         if (b) {
20             System.out.println("if branch");
21         } else {
22             throw new Exception("Wrong branch!?");
23         }
24 
25         if (!b) {
26             throw new Exception("Wrong branch!?");
27         } else {
28             System.out.println("else branch");
29         }
30 
31         try {
32             throw new Exception();
33         } catch (Exception e) {
34             System.out.println("caught exception");
35         } finally {
36             System.out.println("finally");
37         }
38 
39         // This isn't control flow at the source level,  but it is at the bytecode level
40         synchronized (this) {
41             System.out.println("synchronized");
42         }
43 
44 
45         for (int i = 0; i < n; i++) {
46             System.out.println("Loop iteration: " + (i+1) + "/" + n);
47         }
48 
49         switch (n) {
50             case 0:
51                 throw new Exception("Wrong branch!?");
52             case 1:
53                 throw new Exception("Wrong branch!?");
54             case 2:
55                 throw new Exception("Wrong branch!?");
56             case 3:
57                 throw new Exception("Wrong branch!?");
58             case 22:
59                 System.out.println("switch case");
60                 break;
61             default:
62                 throw new Exception("Wrong branch!?");
63         }
64 
65         switch (n) {
66             case 0:
67                 throw new Exception("Wrong branch!?");
68             case 1:
69                 throw new Exception("Wrong branch!?");
70             case 2:
71                 throw new Exception("Wrong branch!?");
72             case 3:
73                 throw new Exception("Wrong branch!?");
74             default:
75                 System.out.println("switch default");
76                 break;
77         }
78     }
79 }
80