public class Cat {
public String name;
public int age;
public int weight;
public int strength;
public Cat() {
}
public static void main(String[] args) {
Cat cat1=new Cat();
Cat cat2=new Cat();
cat1.name="Jony";
cat2.name="Rocy";
cat1.age=3;
cat2.age=4;
cat1.weight=28;
cat2.weight=25;
cat1.strength=8;
cat2.strength=7;
}
public boolean fight(Cat anotherCat) {
Cat cat1=new Cat();
Cat cat2=new Cat();
if (cat2.strength >= cat1.strength )
cat1.fight(cat2) = true;
else
cat2.fight(cat1) = true;
//напишите тут ваш код
}
}Artur Navasardyan
8 уровень
Друзья кто сможет объяснить что не правильно в методе fight и почему так нельзя как я написал??
Архивный
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Антон
12 мая 2018, 13:48
Помимо лишнего блока создания котов в методе.
помните что в строке инициализации метода уже указан тип возвращаемого значения- boolean
поэтому вместо if можно просто присвоить результат сравнения силы котов какой нибудь boolean переменной или явно указать в return(кстати где он?) это сравнение в качестве результата джава сама посчитает.
+2
Павел
10 мая 2018, 22:31полезный
Ну во-первых тебе не нужно вводить конкретные параметры переменных по условию.
Во-вторых по условию сказано указать зависимость из силы веса и возраста, а не просто из силы.
И сам подумай если даже взять силу и она будет равна то какой исход?
обращаться к первому коту ты должен через this
к второму через anotherCar
+1
Artur Navasardyan
10 мая 2018, 22:43
if (this.strength >= anotherCat.strength )
cat1.fight(cat2) = true;
else
cat2.fight(cat1) = true;
получается что я сравниваю силу 2х котов и на основании этого утверждаю что кот 1 победил кота 2. так хоть можно писать (такой код сработает хоть,?)
0
Павел
10 мая 2018, 23:16решение
Cделайте зависимость как сказано в условии, хотя бы сложите показатели силы возраста и веса. Уберите знак равно. Один кот должен быть обязательно сильнее. Уберите переменные cat1 и cat2. У вас есть Cat к которому вы обращаетесь через this и anotherCat, к которому обращаетесь через anotherCat. Далее if с вашей зависимостью. Если да возвращаете тру else возвращаете false
+2
artemon
11 мая 2018, 09:46
Вы вызываете метод в самом себе. Это рекурсия, которая могла бы крутиться бесконечно, если бы этот метод вообще работал.
1) метод файт нужно вызвать из мэйна, иначе программа до него и не дойдёт вовсе, так как вызова нет;
2) остальное, пожалуй, я уже ответил во втором Вашем вопросе;
3) и да, не надо в методе файт снова создавать новых котов, они передаются из мэйна.
0