Прежде всего, вы не можете ответить на этот вопрос, не указав при этом никакого обоснования, или ответ станет полностью субъективным. Я бы с осторожностью относился к тому, что люди отвечали «делай так, потому что мне это нравится», без объяснения причин.
Рассматривая код, очевидно, что существует ряд проверок ошибок внутри функции. В примере с реальным кодом вся такая обработка ошибок обычно требует большого количества комментариев, чтобы описать каждое отдельное условие ошибки, поскольку функции с обширной обработкой ошибок имеют тенденцию быть сложными.
Учитывая, что это не очень хорошая идея написать код как один оператор вообще, потому что если вам придется сжимать комментарии в середине инструкции, код станет беспорядком.
С выше обоснованием, лучшим способом, чтобы написать такие, возможно:
/* comments here */
if(someFunction1(a)){
return 0;
}
/* comments here */
if(someFunction2(b->b1,c)){
return 0;
}
...
/* if we got here, then there are no errors */
do_something();
Это также имеет преимущество в том, ремонтопригодно, если вам нужно выполнить код между проверкой ошибок. Или если вы хотите разбить некоторые более сложные выражения на несколько строк для удобства чтения.
Несмотря на то, что существует множество случаев, когда несколько операторов возврата могут создавать беспорядочный код, это не один из них. В этом случае несколько возвратных операторов действительно улучшают удобочитаемость/ремонтопригодность. Вы не должны догматически избегать множественных операторов возврата только потому, что некоторые стандарты кодирования говорят вам об этом.
Возможный дубликат [Как отложить длинные условные выражения для операторов «если»?] (Http://stackoverflow.com/questions/1059166/how-to-indent-long-conditionals-for-if-statements) – moooeeeep
Явно этот вопрос граничит с вопросом индивидуального стиля (в первую очередь мнения). – moooeeeep
Это на грани прежде всего основанных на мнениях, но я думаю, что этот вопрос достаточно узкий для формата SO. Кроме того, я думаю, что программистам нужно время от времени выпускать эти вещи, как мы можем сказать по количеству голосов голосов, таких как все. Таким образом, нет необходимости закрывать вопрос, хотя вполне возможно, что это будет субъективная дискуссия. – Lundin