В обоих случаях вы проверяете значение логической переменной.Поскольку ваше значение уже является логическим, нет необходимости явно проверять соответствие true
, поскольку оно подразумевается в операторе if (и аналогичных конструкциях, которые содержат логический тест, например, циклы)
Например
if(isAManMan == true){
//...
}
можно оценить как
if(true == true){ //answer: true
//...
}
или
if(false == true){ //answer: false
//...
}
, что равносильно написанию
if(isAManMan){
//...
}
Во втором примере выповторно изучите значение другого логического значения, прежде чем решить, какое логическое значение вернуть.
Опять же,
if (test) {
return true;
}else {
return false;
}
может оценить
if (true == true) { //returns true
return true;
}else {
return false;
}
или
if (false == true) { //returns false
return true;
}else {
return false;
}
Оператор if является избыточным, поскольку переменная уже содержит значение, которое вы хотите вернуть, следовательно, оно эквивалентно и предпочтительнее:
return test;
Важно отметить, что ваши примеры полностьюдопустимо, однако хороший компилятор оптимизирует их до улучшенных версий, которые я дал, так что в конечном итоге все сводится к удобочитаемости и соглашению.Я считаю, что версии, которые я дал, более читабельны и ближе к общепринятым соглашениям.