code: package com.google.checkstyle.test.chapter4formatting.rule411bracesareused;
  
  import java.io.*;
  import javax.script.*;
  import java.util.concurrent.*;
  import java.nio.channels.*;
  import java.awt.print.*;
  import java.lang.management.*;
  import javax.lang.model.element.*;
  
  class InputNeedBraces
  {
      /** @return helper func **/
      boolean condition()
      {
          return false;
      }
  
      /** Test do/while loops **/
      void testDoWhile()
      {
          // Valid
          do {
              testDoWhile();
          }
          while (condition());
  
          // Invalid
          do testDoWhile(); while (condition()); //warn
      }
  
      /** Test while loops **/
      void testWhile()
      {
          // Valid
          while (condition()) {
              testWhile();
          }
  
          // Invalid
          while(condition()); //warn
          while (condition()) //warn
              testWhile();
          while (condition()) //warn
              if (condition()) //warn
                  testWhile();
      }
  
      /** Test for loops **/
      void testFor()
      {
          // Valid
          for (int i = 1; i < 5; i++) {
              testFor();
          }
  
          // Invalid
          for(int i = 1;i < 5;i++); //warn
          for (int i = 1; i < 5; i++) //warn
              testFor();
          for (int i = 1; i < 5; //warn
               i++)
              if (i > 2) //warn
                  testFor();
      }
  
      /** Test if constructs **/
      public void testIf()
      {
          // Valid
          if (condition()) {
              testIf();
          }
          else if (condition()) {
              testIf();
          }
          else {
              testIf();
          }
  
          // Invalid
          if (condition()); //warn
          if (condition()) //warn
              testIf();
          if (condition()) //warn
              testIf();
          else //warn
              testIf();
          if (condition()) //warn
              testIf();
          else {
              testIf();
          }
          if (condition()) {
              testIf();
          }
          else //warn
              testIf();
          if (condition()) //warn
              if (condition()) //warn
                  testIf();
      }
  
      void whitespaceAfterSemi()
      {
          //reject
          int i = 1;int j = 2;
  
          //accept
          for (;;) {
          }
      }
  
      /** Empty constructor block. **/
      public InputNeedBraces() {}
  
      /** Empty method block. **/
      public void emptyImplementation() {}
  }
  
  class EmptyBlocks {
      boolean flag = true;
      int[] a = {1, 2, 3, 4, };
  
      void foo() {
          while(flag); //warn
          while(flag) {}
          while(flag) {/*foo*/}
          do; //warn
          while(flag);
          do {}
          while(flag);
          do {/*foo*/}
          while(flag);
          if(flag); //warn
          if(flag){}
          if(flag) {/*foo*/}
          if(flag); //warn
          else; //warn
          if(flag){}
          else {}
          if(flag){/*foo*/}
          else {/*foo*/}
          for(int i = 0; i < 10; i++); //warn
          for(int i = 0; i < 10; i++) {}
          for(int i = 0; i < 10; i++) {/*foo*/}
          for(int b : a); //warn
          for(int b : a) {}
          for(int b : a) {/*foo*/}
      }
  
      class InnerEmptyBlocks {
          boolean flag = true;
          int[] a = {1, 2, 3, 4, };
  
          void foo() {
              while(flag); //warn
              while(flag) {}
              while(flag) {/*foo*/}
              do; //warn
              while(flag);
              do {}
              while(flag);
              do {/*foo*/}
              while(flag);
              if(flag); //warn
              if(flag){}
              if(flag) {/*foo*/}
              if(flag); //warn
              else; //warn
              if(flag){}
              else {}
              if(flag){/*foo*/}
              else {/*foo*/}
              for(int i = 0; i < 10; i++); //warn
              for(int i = 0; i < 10; i++) {}
              for(int i = 0; i < 10; i++) {/*foo*/}
              for(int b : a); //warn
              for(int b : a) {}
              for(int b : a) {/*foo*/}
          }
      }
  
      InnerEmptyBlocks anon = new InnerEmptyBlocks() {
          boolean flag = true;
          int[] a = {1, 2, 3, 4, };
  
          void foo() {
              while(flag); //warn
              while(flag) {}
              while(flag) {/*foo*/}
              do; //warn
              while(flag);
              do {}
              while(flag);
              do {/*foo*/}
              while(flag);
              if(flag); //warn
              if(flag){}
              if(flag) {/*foo*/}
              if(flag); //warn
              else; //warn
              if(flag){}
              else {}
              if(flag){/*foo*/}
              else {/*foo*/}
              for(int i = 0; i < 10; i++); //warn
              for(int i = 0; i < 10; i++) {}
              for(int i = 0; i < 10; i++) {/*foo*/}
              for(int b : a); //warn
              for(int b : a) {}
              for(int b : a) {/*foo*/}
          }
      };
  }
  