Почему не даёт вернуть результат функции Java?
import java.util.Scanner;
public class trsin {
public static void main (String[] args){
Scanner input = new Scanner((System.in));
System.out.print("Write your full name: ");
String username = input.nextLine();
sex(username);
}
public static String sex(String name) {
if ('a' == name.charAt(name.length()-1)){
String gender = "woman";
}
else{
String gender = "man";
}
return gender;
}
}
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Потому что область видимости переменной gender
у вас ограничена if
и else
(причём, это две разных переменные в if
и else
, хотя и с одним названием), а снаружи этой конструкции эту переменную уже не видно. Нужно вынести описание gender
на уровень всего метода:
public static String sex(String name) {
String gender = "man";
if ('a' == name.charAt(name.length()-1)){
gender = "woman";
}
return gender;
}
Так то тут переменная вообще не нужна, можно сразу возвращать литерал.