Есть 2 варианта кода. Во 2-м варианте при определённом положении оператора return в ветвлении if-else программа выдает ошибку, почему?
Скорее всего компилятор ругается на то, что у вас не во всех вариантах событий возвращается какое-либо значение, допустим в коде ниже если выполнится условие if(income1>income2), но не выполнится вложенное в него if(income1>income3), то функция просто ничего не вернет, ибо блок else для вложенного if отсутствует.
if (income1>income2) {
            if (income1>income3) { 
                return film1;  
            }
Скорее всего компилятор ругается на то, что у вас не во всех вариантах событий возвращается какое-либо значение, допустим в коде ниже если выполнится условие if(income1>income2), но не выполнится вложенное в него if(income1>income3), то функция просто ничего не вернет, ибо блок else для вложенного if отсутствует.
if (income1>income2) {
            if (income1>income3) { 
                return film1;  
            }