Which is better/more generally accepted?

This:

if(condition)
{
  statement;
}


Or:

if(condition)
  statement;


I tend to prefer the first one, because I think it makes it easier to tell what actually belongs in the if block, it saves others from adding the braces later (or creating a bug by forgetting to), and it makes all your if statements uniform instead of some with braces and some without.  The second one, however, is still syntactically correct and definitely more compact.  I'm curious to see which is more generally preferred by others though.

The first is better because the second is error-prone.  For example, let's say you are temporarily commenting out code to debug something:

if(condition) 
//      statement;
otherStatement;


Or adding code in a hurry:

if(condition) 
    statement;
    otherStatement;


This is obviously bad.  On the other hand, the first one does feel too verbose at times.  Therefore, I prefer to just put everything on one line if it's sufficiently short and simple:

if(condition) statement;


This cuts down on syntactic noise while making the construct look like it does what it actually does, making it less error-prone.  Provided that this syntax is only used for very simple, short conditions and statements, I find it perfectly readable.
