JavaRush
Новогодняя акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Не могу понять почему не выполняется 4 и 7 условие.
Сергей
5 уровень
  • 14.08.2019
  • 493просмотров
  • 5комментариев

Не могу понять почему не выполняется 4 и 7 условие.

Вопрос по задаче Реализовать метод fight
Java Syntax,  5 уровень,  5 лекция
Решен

Реализуй метод boolean fight(Cat anotherCat):
продумай механизм драки котов в зависимости от их веса, возраста и силы.
Сравни каждый критерий по отдельности, чтобы победителем был тот, у кого были лучшие показатели по большинству критериев.
Метод должен определять, выиграли ли мы (this) бой или нет, т.е. возвращать true, если выиграли и false - если проиграли.
Если ничья и никто не выиграл, возвращаем false.

Требования:
  • Класс Cat должен содержать конструктор без параметров.
  • Класс Cat должен содержать всего три поля: age, weight и strength. Поля должны быть публичные.
  • В классе Cat должен быть метод fight.
  • В методе fight реализовать механизм драки котов в зависимости от их веса, возраста и силы согласно условию.
  • Метод должен возвращать одно и тоже значение, если мы деремся с одним и тем же котом.
  • Если некий кот1 выигрывает у кота кот2, то кот2 должен проигрывать коту кот1.
package com.javarush.task.task05.task0502; /* Реализовать метод fight */ public class Cat { public int age; public int weight; public int strength; public Cat() { } public boolean fight(Cat anotherCat) { int x = 0; int y = 0; if(this.age<anotherCat.age) {x++;} else if(this.age>anotherCat.age) {y++;} else if(this.weight>anotherCat.weight) {x++;} else if(this.weight<anotherCat.weight) {y++;} else if(this.strength>anotherCat.strength) {x++;} else if(this.strength<anotherCat.strength) {y++;} if(x>y){ return true;} else{ return false;} } public static void main(String[] args) { Cat cat1 = new Cat(); Cat cat2 = new Cat(); cat1.age = 1; cat1.weight = 1; cat1.strength = 1; cat2.age = 1; cat2.weight = 1; cat2.strength = 1; System.out.println(cat1.fight(cat2)); System.out.println(cat2.fight(cat1)); } }
0
Комментарии (5)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Кирилл Анацкий
Уровень 8
14 августа 2019, 17:30
Например
int x = 0;
        int y = 0;
        if(this.age<anotherCat.age)
            x++;
        else if(this.age>anotherCat.age)
            y++;
         if(this.weight>anotherCat.weight)
            x++;
        else if(this.weight<anotherCat.weight)
Кстати если после if/else (условие) мы хотим выполнить только 1 строчку, как у тебя, то можно не брать её в {скобки такие}
0
Кирилл Анацкий
Уровень 8
14 августа 2019, 17:28
твой код может сравнить только возраст. Как только у кого-либо он больше или меньше, то твоя цепочка if прекращает работу. Тебе нужно разделить проверку age, weight и strenght. поставь не else if, а просто if в этих местах. Иначе программа просто не дойдет до этого места.
0
Сергей
Уровень 5
14 августа 2019, 17:41
int x = 0; int y = 0; if(this.age<anotherCat.age) {x++;} else if(this.age>anotherCat.age) {y++;} if(this.weight>anotherCat.weight) {x++;} else if(this.weight<anotherCat.weight) {y++;} if(this.strength>anotherCat.strength) {x++;} else if(this.strength<anotherCat.strength) {y++;} if(x>y){ return true;} else{ return false;} } все равно не принимает 4 и 7 условие
0
Кирилл Анацкий
Уровень 8
14 августа 2019, 17:51
ошибка в знаках. При сравнении возраста ты добавляешь очко не тому коту:) А ещё в методе main можно ничего не писать и не создавать. Задание только в том, чтобы прописать метод fight.
+2
Сергей
Уровень 5
14 августа 2019, 17:55
Благодарю, помогло.
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush