Что положить в блок IF и что положить в блок ELSE? - PullRequest
12 голосов
/ 03 октября 2008

Это незначительный вопрос стиля, но каждый бит читабельности, который вы добавляете к своему коду, имеет значение.

Итак, если у вас есть:

if (condition) then
{
   // do stuff
}
else
{
   // do other stuff
}

Как вы решаете, лучше это или так:

   if (!condition) then
   {
     // do other stuff
   {
   else
   {
     // do stuff
   }

Мои эвристики:

  1. Сохранять состояние положительным (меньше умственный расчет при чтении)
  2. Поместите самый распространенный путь в первый блок

Ответы [ 23 ]

0 голосов
/ 03 октября 2008

Если у вас должно быть несколько точек выхода, сначала поставьте их и проясните:

if TerminatingCondition1 then
  Exit
if TerminatingCondition2 then
  Exit

Теперь мы можем прогрессировать с обычными вещами:

if NormalThing then
  DoNormalThing
else
  DoAbnormalThing
0 голосов
/ 16 июля 2012

Я обычно положил положительный результат (так метод) в начале так:

if(condition)
{
doSomething();
}
else
{
System.out.println("condition not true")
}

Но если условие должно быть ложным для используемого метода, я бы сделал это:

if(!condition)
{
doSomething();
}
else
{
System.out.println("condition true");
}
0 голосов
/ 03 октября 2008

Как правило, если один из них значительно больше другого, я делаю больший блок if.

...