Существует определенный вид программистов, которые предпочитают кодировать это следующим образом:
if( a[0] == a[1] / 2 )
return true;
else
return false;
Мы презираем таких программистов, и во время обеденного перерыва мы не сидим рядом с ними.
Итак, чтобы ответить на ваш вопрос, return a[0] == a[1] / 2;
- это совершенно правильное утверждение, и любой опытный программист предпочел бы увидеть его таким, а не каким-либо другим способом.'==' внутри выражения говорит нам, что это выражение оценивается как логическое значение, а затем это логическое значение возвращается функцией.Это абсолютно нормально.
Если это поможет вам лучше понять это, вы можете выразить это как return a[0] == (a[1] / 2);
, но если вы знаете приоритет вашего оператора, это не нужно, и в любом случае альтернатива (return (a[0] == a[1]) / 2;
)не может работать, потому что оператор деления не применим к логическим значениям.