JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/жаль что не прошло , с switch отлично сработало
kepler114
10 уровень
  • 11.04.2024
  • 245просмотров
  • 4комментариев

жаль что не прошло , с switch отлично сработало

Вопрос по задаче Magic 8 ball
Java Syntax,  9 уровень,  2 лекция
Обсуждается


В этой задаче тебе предстоит реализовать метод getPrediction() в классе MagicBall, который будет работать как шар предсказаний.
Он случайным образом возвращает фразу-ответ на заданный вопрос. В методе getPrediction() нужно использовать метод nextInt(int) класса Random, который должен возвращать значения от 0 до 7 включительно.
В зависимости от результата работы метода nextInt(int) возвращается один из вариантов ответа:
0 -> Бесспорно
1 -> Определённо да
2 -> Вероятнее всего
3 -> Хорошие перспективы
4 -> Спроси позже
5 -> Попробуй снова
6 -> Мой ответ — нет
7 -> Весьма сомнительно
Иначе вернуть null.

Требования:
  • Реализуй метод getPrediction() согласно условию.
.....
package com.javarush.task.pro.task08.task0805; import java.util.Random; public class MagicBall { private static final String CERTAIN() { return "Бесспорно"; } private static final String DEFINITELY() { return "Определённо да"; } private static final String MOST_LIKELY() { return "Вероятнее всего"; } private static final String OUTLOOK_GOOD() { return "Хорошие перспективы"; } private static final String ASK_AGAIN_LATER() { return "Спроси позже"; } private static final String TRY_AGAIN() { return "Попробуй снова"; } private static final String NO() { return "Мой ответ — нет"; } private static final String VERY_DOUBTFUL() { return "Весьма сомнительно"; } public static String getPrediction() { Random random = new Random(); int x = random.nextInt(7); switch (x) { case 0: return CERTAIN(); case 1: return DEFINITELY(); case 2: return MOST_LIKELY(); case 3: return OUTLOOK_GOOD(); case 4: return ASK_AGAIN_LATER(); case 5: return TRY_AGAIN(); case 6: return NO(); case 7: return VERY_DOUBTFUL(); default: return null; } } }
0
Комментарии (4)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #3431482
Уровень 1
11 апреля 2024, 08:49
В case сделай доп переменную типа стринг которой присваивай значение в зависимости какой case. В case return делать не нужно. return делается за пределами свитч кейс, и возвращает ту саму доп переменную с уже нужным значением. Так же в каждом case нужно проставить break, иначе будет выдавать одно и тоже значение которое стоит в последнем case
String otvet = "";
        switch (x) {
            case 0:
                otvet = CERTAIN;
                break;
            case 1:
                otvet = DEFINITELY;
                break;
            case 2:
                otvet = MOST_LIKELY;
                break;
            case 3:
                otvet = OUTLOOK_GOOD;
                break;
            case 4:
                otvet = ASK_AGAIN_LATER;
                break;
            case 5:
                otvet = TRY_AGAIN;
                break;
            case 6:
                otvet = NO;
                break;
            case 7:
                otvet = VERY_DOUBTFUL;
                break;
            default:
                otvet = null;
                break;
        }
        return otvet;
0
hidden #3303140
Уровень 2
11 апреля 2024, 09:30
И зачем? return внутри case отлично справится с возвратом значения и прерыванием выполнения switch, т.к. он выполняет выход из метода в целом. Создавать здесь переменную не нужно. Проблема в том, что у автора используется nextInt(7), а должно быть nextInt(8).
0
Anonymous #3431482
Уровень 1
11 апреля 2024, 10:05
Согласен, спорить не буду конечно, у меня было изначально таке же решение как у автора, только у меня не было проблемы с nextint. Сразу правильно значение стояло, но код не компелировался, ругался именно на ретерн. Переделал как выложил выше, все прошло удачно.
0
hidden #3303140
Уровень 2
11 апреля 2024, 07:30
Он тебе хоть раз выдал строку с текстом «Весьма сомнительно»? Весьма сомнительно. Твой рандом не выдаст числа 7, верхняя граница не включается. И в чем прикол упаковывать каждую константу в отдельный метод? Это не делает никакой пользы, только лишний мусор в коде
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush