Меня попросили создать программу, в которой хранятся серии подходящих существительных, прилагательных и глаголов в массивах. Они должны быть настроены в начале прогона программы. Вместо того, чтобы спрашивать пользователя, каждый раз, когда он генерирует букву, он просто выбирает слова наугад из соответствующего массива. Массивы передаются методам, которые представляют шаблоны.
Я новичок в java, и это то, что мне удалось сделать ниже, но показывает ошибки, говорящие, что void не может быть преобразован в строку для каждой части сообщения печати. Я был бы рад, если кто-то может помочь мне подойти к этому простому вопросу, с которым я борюсь, я не знаю, правильно ли я делаю это.
Любая помощь приветствуется.
public static void arrays()
{
String []noun = {"face", "eyes", "tender", "lips", "ears", "roses"};
Random random = new Random();
int rand1 = random.nextInt(noun.length);
String []verb = {"enchant", "dazzle", "cuddle" , "lure", "desire", "dream" };
Random random2 = new Random();
int rand2 = random2.nextInt(verb.length);
String []adjective = { "Alluring", "Angelic", "Adoring", "Appealing", "Attractive", "beautiful"};
Random random3 = new Random();
int rand3 = random3.nextInt(adjective.length);
printmessage (noun[rand1], verb[rand2], adjective[rand3]);
}
// END arrays
public static void printmessage(String noun, String verb, String adjective)
{
System.out.println("I would love to " + verb + " " + adjective + " " + noun + "\n");
System.out.println("Your are my " + noun + " " + adjective + " " + verb + "\n");
System.out.println("you always look great in that " + noun + " ,as you always do, since your so " + adjective + "\n");
System.out.println("I get butterflies when I see you in" + noun + " , you make me " + verb + " , in your " + adjective + " world" + "\n");
}
} // END class loveletter
У вас здесь проблемы, поэтому пройдите через них.
Во-первых, концептуальный вопрос. Вам не нужно возвращать что-либо из вашего метода printmessage
, поскольку все, что вы делаете, показывает диалог сообщения.
Затем вы ничего не делаете с этими четырьмя переменными result
, и они останутся только в рамках этого метода. Это сказать, не очень долго. Я не думаю, что они вам нужны.
Далее, технические вопросы:
Один return
- это все, что требуется для остановки выполнения кода. Если бы это был действительный код, вы бы вернули result1
. Поскольку мы ранее обсуждали, что вам не нужно ничего возвращать из этого метода, удалите лишнее return
s.
JOptionPane#showMessageDialog
возвращает void
; то есть ничего не возвращает. Вы не можете присвоить значение возвращаемого типа переменной, поэтому переменные вам абсолютно не подходят. Удалите назначение и объявления.
Не забудьте изменить тип возврата вашего метода на void
вместо String
.
Очистите вызов в arrays()
чтобы он только printmessage
в конце, и после этого ничего не делает.
Я оставляю логические ошибки (я заметил некоторые фанки конкатенации строк и грамматические ошибки там) в качестве упражнения для читателя.
void
, удалили назначения для этих переменных result
, удалили операторы return
, удалили назначение в arrays
результата printmessage
и удалили последующее JOptionPane
после вашего вызова printmessage
? И вы все еще получаете ошибки?
String