Назад к вопросам
JuniorТеорияЧасто
Что произойдёт при компиляции и запуске программы?
public class Main {
static int sign(int x) {
if (x > 0) {
return 1;
} else if (x < 0) {
return -1;
}
}
public static void main(String[] args) {
System.out.println(sign(5));
}
}Не скомпилируется
- Ждать
1: компилятор не смотрит на вызовsign(5); он проверяет, что каждый путь вsignвозвращает значение, а приx == 0метод доходит до конца без него. - Ждать
0или ошибку при запуске: результата по умолчанию у метода нет; путь безreturnостанавливает компиляцию с ошибкойmissing return statement.
- Как изменить
sign, чтобы он компилировался и возвращал 0 для нуля? - Почему метод
voidкомпилируется вовсе безreturn?