Подскажите,копирую задачу в idei,требует заменить bolean на void,как это исправить?
Михаил
17 уровень
Подскажите
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
9 февраля 2021, 14:03полезный
у тебя в заготовке метода fight не хватает команды return.
Ты должен написать некий алгоритм, вычисляющий результат боя типа boolean и вернуть его как результат метода.
+1
Михаил
11 февраля 2021, 05:44
public class Cat {
public int age;
public int weight;
public int strength;
public Cat() {
}
public boolean fight(Cat anotherCat) {
int anotherCatCount = 0;
int catCount = 0;
if (this.age > anotherCat.age) {
catCount++;
} else if (this.age < anotherCat.age) {
anotherCatCount++;
} else {
catCount++;
anotherCatCount++;
}
if (this.weight > anotherCat.weight) {
catCount++;
} else if (this.weight < anotherCat.weight) {
anotherCatCount++;
} else {
catCount++;
anotherCatCount++;
if (this.strength > anotherCat.strength) {
catCount++;
} else if (this.strength < anotherCat.strength) {
anotherCatCount++;
} else {
catCount++;
anotherCatCount++;
}
if (catCount > anotherCatCount) {
return true;
} else if (catCount < anotherCatCount) {
return false;
} else if (catCount == anotherCatCount) {
return false;
}
}
}
а сейчас то в чем ошибка, returnы есть,а он опять их требует
0
hidden #598481
11 февраля 2021, 07:47полезный
Нельзя делать все ретерны внутри ифов.
На этапе компиляции нет проверки на то, что один из них обязательно выполнится, это не всегда можно узнать заранее; с точки зрения компилятора возможна ситуация, когда ни один из ифов не выполнился, и тогда методу будет нечего возвращать.
Если ты действительно предполагаешь, что ифы дополняют друг друга до полного множества вариантов, то последний иф можно убрать, оставив просто else, ведь никакого другого варианта там не остается.
Но в случае, когда ты проверяешь какое-то условие и тут же возвращаешь результат этого условия как boolean выражение, можно все значительно упростить, ведь само сравнение вернет true, если оно верное или false если ложное.
Поэтому весь свой блок if-return-else-return можешь заменить на одну строчку:
PS Проверь скобки, у тебя проверка силы находится внутри условия проверки веса. +2
Ksenia Volkova Java Developer в DXC Master
9 февраля 2021, 14:03полезный
Напиши метод так, чтобы он возвращал boolean-значение.
+1
Михаил
9 февраля 2021, 14:20
да спасибо уже понял
0