Да.
Особенно с именами, похожими на выбранные вами имена, т.е. CanDoSomething
и DoSomething
. абсолютно ясно для любого компетентного программиста, что делает второй код: « тогда и только тогда, когда условие выполнено, что-то сделать и вернуть результат ».«Если и только если» - это основной смысл короткозамкнутого оператора &&
.
Первый код является сложным и излишне длинным, не предоставляя больше информации, чем второй код.
Но в целом, эти два условия могут не образовывать такие тесные отношения (как в CanDo
и Do
), и может быть лучше разделить их логически, потому что помещение их в одно и то же условие может не иметь интуитивного смысла.
Многие люди здесь утверждают, что первая версия «намного понятнее».Я бы очень хотел услышать их аргументы.Я не могу думать ни о каком.
С другой стороны, есть этот тесно связанный (хотя и не совсем такой же) код:
if (condition)
return true;
else
return false;
это должно всегда преобразуется в это:
return condition;
Без исключения .Это краткое и еще более удобочитаемое для тех, кто владеет языком.