I use the two-line version without braces (the 2nd form), but not to save space.
I use that form because I find it more readable, more visually appealing, and easier to type. I only use that form if those conditions are met; i.e. the if condition has to fit nicely on a single line, and the corresponding statement has to fit nicely on the following line. If that is not the case, then I will use braces to improve readability.
If I use this form, I make sure that there is an empty line (or a line containing only a brace) before and after the if statement (or above the comment, if present). While this is not a rule that I consciously follow, I notice it now after reading this question.
Conserving screen space is not a priority for me. If I needed more space I would use a larger monitor. My screen is already large enough for me to read anything that I might need to focus my attention on. It's unlikely that I would need to focus on so many lines of code at one time that they take up my entire screen. If there is so much nesting going on with a chunk of code that I can't understand it without viewing more of it at one time, then I would have to consider whether the logic could be better represented by refactoring.
Below are some examples that demonstrate how I use this form of the if statement.
string GuardConditions(Plan planForWorldDomination)
{
if (planForWorldDomination == null)
throw new ArgumentNullException("planForWorldDomination");
if (!planForWorldDomination.IsComplete())
return "Doh!";
planForWorldDomination.Execute();
}
void ProcessingLogic()
{
OneBlankLineAbove();
if (simpleCondition)
simpleStatement();
OneBlankLineBelow();
OneBlankLineAbove();
// optional comment on the line above an if statement
if (simpleCondition)
simpleStatement();
OneBlankLineBelow();
}
void Assignment(string drive)
{
OneBlankLineAbove();
string prompt;
if (simpleCondition)
prompt = "simple assignment";
else
prompt = null;
OneBlankLineBelow();
}
string Return()
{
OneBlankLineAbove();
if (simpleCondition)
return "simple return";
else
return null;
OneBlankLineBelow();
}