Braces Rules

The Braces Ruleset contains a collection of braces rules.

IfStmtsMustUseBraces

Since: PMD 1.0

Avoid using if statements without using curly braces.

This rule is defined by the following XPath expression:

                   
//IfStatement[count(*) < 3][not(Statement/Block)]
                   
               

Example:

                
 
 public class Foo {
   public void bar() {
     int x = 0;
     if (foo) x++;
   }
 }
 
     
            

WhileLoopsMustUseBraces

Since: PMD 0.7

Avoid using 'while' statements without using curly braces.

This rule is defined by the following XPath expression:


//WhileStatement[not(Statement/Block)]

                

Example:

                

public void doSomething() {
  while (true)
      x++;
}

      
            

IfElseStmtsMustUseBraces

Since: PMD 0.2

Avoid using if..else statements without using curly braces.

This rule is defined by the following XPath expression:


//Statement
 [parent::IfStatement[@Else='true']]
 [not(child::Block)]
 [not(child::IfStatement)]
 
                 

Example:

                

 public void doSomething() {
   // this is OK
   if (foo) x++;
   // but this is not
   if (foo)
       x=x+1;
   else
       x=x-1;
 }

       
            

ForLoopsMustUseBraces

Since: PMD 0.7

Avoid using 'for' statements without using curly braces.

This rule is defined by the following XPath expression:

 
//ForStatement[not(Statement/Block)]
 
                 

Example:

                

public void foo() {
 for (int i=0; i<42;i++)
   foo();
}