Недоступные заявления, если условие Java
double runde(double x, int n) {
if (n < 0) {
throw new IllegalArgumentException("Anzahl der Nachkommastellen darf nicht negativ sein.");
return 0.0 ; }
if (n==x) {/* Ist n=x? Wenn ja, dann nicht runden*/
return x ; } /* X dementsprechend als Rückgabewert */
if (n>0) {/* Test ob n größer null ist*/
return Math.round(x*Math.pow(10,n))/Math.pow(10,n) ; }}
Эй, я не понимаю, почему возвращение 0.0 должно быть недоступным. Я попытался построить метод, который округляет число до заданного десятичного знака.
кроме того, должно быть отсутствующее заявление о возврате.
Спасибо за помощь!
5 ответов
Если ваш метод выдает исключение, он также не может вернуть значение.
Вы должны выбрать, выдавать ли исключение:
if (n < 0) {
throw new IllegalArgumentException("Anzahl der Nachkommastellen darf nicht negativ sein.");
}
или вернуть 0.0
:
if (n < 0) {
return 0.0 ;
}
но вы не можете сделать оба.
И вы должны иметь окончательное заявление о возврате в случае, если ни одно из ваших условий не выполняется. Добавьте инструкцию возврата в качестве окончательной инструкции метода.
Вы не пропускаете заявление на возврат. На самом деле у вас есть это дополнительно. Как только вы бросаете исключение, выполнение заканчивается там. Следовательно, нет никаких шансов достичь этого возвращения. Следовательно, обратная линия недоступна. В зависимости от вашего бизнеса выберите один. Либо возврат, либо исключение.
Вызывая исключение, вы предотвращаете дальнейшее выполнение метода.
Если исключение не перехвачено, весь поток будет прерван и закрыт.
Если вы этого не хотите, верните некоторое значение, которое может означать только ошибку
Когда вы генерируете исключение, компилятор java прекращает выполнение текущего метода, а элемент управления выходит из текущего метода, я бы порекомендовал вам использовать оператор if else для вашей проблемы, чтобы, если первое условие истинно, он не пропускал команда "вернуть 0.0"
Вы кидаете исключение в заявление перед тем
Это завершает выполнение метода.
Возможно, вы смущены случайным отступом и расположением скобок. Вы должны попытаться придерживаться стандартного форматирования. Написание чистого кода помогает избежать ошибок.