1   // Example 3.3 joi/examples/BreakAndContinueDemo.java                         
2   //                                                            
3   //                                                            
4   // Copyright 2003 Bill Campbell and Ethan Bolker                         
5                                                               
6   public class BreakAndContinueDemo
7   {
8       private static Terminal t = new Terminal();
9   
10      public static void main( String[] args ) 
11      {
12          t.println("invoking loop");
13          BreakAndContinueDemo.loop();  // could say just loop();
14          t.println("returned from loop, leaving main");
15      }
16  
17      private static void loop()
18      {
19          t.println("starting infinite loop");
20          while( true ) {
21              String command = t.readWord(
22                  "normal, break, continue, return, exit, oops ? > ");
23              if (command.startsWith("n")) {
24                  t.println("normal flow of control");
25              }
26              if (command.startsWith("b")) {
27                  t.println("break from looping");
28                  break;
29              }
30              if (command.startsWith("c")) {
31                  t.println("continue looping");
32                  continue;
33              }
34              if (command.startsWith("r")) {
35                  t.println("return prematurely from loop method");
36                  return;
37              }
38              if (command.startsWith("e")) {
39                  t.println("exit prematurely from program");
40                  System.exit(0);
41              }
42              if (command.startsWith("o")) {
43                  t.println("program about to crash ...");
44                  Terminal foo = null;
45                  foo.println("crash the program");
46              }
47              t.println("last line in loop body");
48          } 
49          t.println("first line after loop body");
50          t.println("returning normally from loop method");
51      }
52  }
53