У нас условия задачи - нужно использовать метод nextInt(int) класса Random, который должен возвращать значения от 0 до 7 включительно.
В зависимости от результата работы метода nextInt(int) возвращается один из вариантов ответа:
0 -> Бесспорно
1 -> Определённо да
2 -> Вероятнее всего
3 -> Хорошие перспективы
4 -> Спроси позже
5 -> Попробуй снова
6 -> Мой ответ — нет
7 -> Весьма сомнительно
Иначе вернуть null.
Вот мой код -
public class MagicBall {
private static final String CERTAIN = "Бесспорно";
private static final String DEFINITELY = "Определённо да";
private static final String MOST_LIKELY = "Вероятнее всего";
private static final String OUTLOOK_GOOD = "Хорошие перспективы";
private static final String ASK_AGAIN_LATER = "Спроси позже";
private static final String TRY_AGAIN = "Попробуй снова";
private static final String NO = "Мой ответ — нет";
private static final String VERY_DOUBTFUL = "Весьма сомнительно";
public static String getPrediction() {
Random r = new Random();
int i = r.nextInt(7) + 1;
String[] strings = new String[8];
strings[0] = CERTAIN;
strings[1] = DEFINITELY;
strings[2] = MOST_LIKELY;
strings[3] = OUTLOOK_GOOD;
strings[4] = ASK_AGAIN_LATER;
strings[5] = TRY_AGAIN;
strings[6] = NO;
strings[7] = VERY_DOUBTFUL;
return strings[i];
}
}
Но ЗАЧЕМ прописывать иначе, если это "Иначе" никогда не наступит? Вот что не так может пойти, что у нас выскочит это "Иначе", чтобы я его прописывал, я еще глянул правильное решение, ну это же пиз*** Все в if и else if, разве так надо? Я вижу эти условия так - Если собака животное, то сделай это А если СОБАКА НЕ ЖИВОТНОЕ, то null. Это в моем понимании, понимании новичка, попрошу высокоуровневых ребят меня как следует проучить и объяснить, где косяк, и почему мне все-таки следует прописать это несчастное "Иначе"package com.javarush.task.pro.task08.task0805;
import java.util.Random;
public class MagicBall {
private static final String CERTAIN = "Бесспорно";
private static final String DEFINITELY = "Определённо да";
private static final String MOST_LIKELY = "Вероятнее всего";
private static final String OUTLOOK_GOOD = "Хорошие перспективы";
private static final String ASK_AGAIN_LATER = "Спроси позже";
private static final String TRY_AGAIN = "Попробуй снова";
private static final String NO = "Мой ответ — нет";
private static final String VERY_DOUBTFUL = "Весьма сомнительно";
public static String getPrediction() {
int random = new Random().nextInt(8);
if (random == 0) {
return CERTAIN;
} else if (random == 1) {
return DEFINITELY;
} else if (random == 2) {
return MOST_LIKELY;
} else if (random == 3) {
return OUTLOOK_GOOD;
} else if (random == 4) {
return ASK_AGAIN_LATER;
} else if (random == 5) {
return TRY_AGAIN;
} else if (random == 6) {
return NO;
} else if (random == 7) {
return VERY_DOUBTFUL;
} else {
return null;
}
}
}