public boolean fight(Cat anotherCat) {
//напишите тут ваш код
int i = 0;
int j = 0;
if(this.age > anotherCat.age) {i++;}
else if(this.age != anotherCat.age){j++;}
if(this.weight > anotherCat.weight) {i++;}
else if(this.weight != anotherCat.weight){j++;}
if(this.strength > anotherCat.strength) {i++;}
else if(this.strength != anotherCat.strength){j++;}
if (i > j) {
System.out.println("Vyigral 1 kot");
return true;
} else if (j > i) {
System.out.println("Vyigral 2 kot");
return false;
} else {
System.out.println("nicja");
return false;
}
}
public static void main(String[] args) {
Cat cat1 = new Cat();
Cat cat2 = new Cat();
cat1.age =4;
cat1.strength =2;
cat1.weight = 2;
cat2.age =3;
cat2.strength =2;
cat2.weight = 2;
cat1.fight(cat2);
cat2.fight(cat1);
}
}
Может кто-нибудь объяснить почему в cat1.fight(cat2); побеждает 1 кот а в cat2.fight(cat1); побеждает второй?ведь у первого показатели выше!
Дмитрий
10 уровень
Задачу решил но кое-чего не понял. Если кто-то не решил - не входите!
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр один Эс Backend Developer в EFFECTIVESOFT POLAND
23 февраля 2020, 20:42
Потомучто else if(this.age != anotherCat.age){j++;}
3 !=4 выигрывает 2й
Тебе нужно назвать переменные не i и j а более понятно, тогда быстро найдешь ошибку.
0
Дмитрий
23 февраля 2020, 20:48
немного не понял "Потомучто else if(this.age != anotherCat.age){j++;}
3 !=4 выигрывает 2й"
ведь так и должно быть, у кого выше число тот и побеждает
0
Александр один Эс Backend Developer в EFFECTIVESOFT POLAND
23 февраля 2020, 21:02
ну так в 2м случае this.age = 3 (а это у тебя 2й). А имена i и j - не проясняют картину а только путают. Если бы ты назвал i например winOne, а j winTwo было бы проще понять, я это писал выше.
0
Дмитрий
23 февраля 2020, 21:16
Я вроде и понял но для себя простым языком объяснить не могу, поэтому путаюсь еще больше
0
Дмитрий
23 февраля 2020, 20:41
if(this.age > anotherCat.age) {i++;}
else if(this.age != anotherCat.age){j++;}
Вообще уже запутался... this.age и anotherCat.age - к чему относится this и к чему anotherCat?
в смысле this это обращение к переменным класса, а anotherCat разве не то же самое?
0
Ksenia Volkova Java Developer в DXC Master
23 февраля 2020, 20:41полезный
Потому что у тебя "первым котом" называется кот this, а вторым - кот anotherCat.
Поскольку ты их меняешь местами, первый становится вторым и снова выигрывает.
+1
Дмитрий
23 февраля 2020, 20:42
Аааа я так и подумал)))) Просто столько голову ломал что уже запуталось все) Спасибо)
0