quello che ti ho scritto io è corretto, se @AlfioEmanueleFresta ti ha detto di fare diversamente probabilmente si è confuso. La valutazione dell'`&&` prevede di valutare i 2 argomenti, l'argomento di sinistra è `return val` che provoca appunto il return e quello di destra non viene mai valutato.