任务:
- 包括决定以及上述所有结构。
- 定义并使用包含参数的一个(s)并返回结果的方法
示例:如上所述,但程序现在除了上面的内容之外还有一系列可能的模板行,并选择随机包含哪一行。例如,它可以选择“你是我的<名词>”这一形式的一行和一行“我会永远认为你是我的<名词>”。当被问及(例如“snugglebunny”)完成句子时,运行程序的人输入名词(例如,在这种情况下,它可能会选择“你是我的snugglebunny”)。对于每个模板,定义了一个单独的方法,该方法返回给定单词作为参数提供的完整句子。
这是我设法完成的代码,但它显示错误“String []无法转换为String for printmessage(ans1,input)”。我不知道这个问题在哪里出错,如果有人可以提供帮助,我会很高兴!
public static void decisions()
{
String input;
String phrase = "";
input = askquestion (); // defining the method for asking user the question to input a noun word.
String [] ans1 = {"You remind me of my","I always think of you as my","I wish You could always be my","you are my one and only"}; // this will randomly select one phrase out of 4 given
int rand = (int) (Math.random() * 4); //this will do a random math calculation and select one phrase
switch (rand)
{
case 0:
printmessage(ans1, input);
break;
case 1:
printmessage(ans1, input);
break;
case 2:
printmessage(ans1, input);
break;
case 3:
printmessage(ans1, input);
break;
}
// this defines the method for printing the message, taking the argument strings inside the bracket to the message defined later on.
} // END decisions
public static String askquestion ()
{
String result = "";
result = JOptionPane.showInputDialog("Enter a noun word to describe your partner"); //asks users input
return result;
}
public static void printmessage (String ans1, String input) // this will receive the argument from the method defined above and then be printed below as shown. The argument have been declared as x and y.
{
JOptionPane.showInputDialog( ans1 + input ); //this will combine the two variables and execute the message.
}
答案 0 :(得分:1)
String []是一个字符串数组。 printmessage
需要一个String,而不是它们的数组。给它一个字符串!
也称,传递switch语句中的rand
参数,顺便说一下,这是多余的,因为你调用了相同的方法。
switch (rand) {
case 0:
printmessage(ans1[rand], input);
break;
case 1:
printmessage(ans1[rand], input);
break;
case 2:
printmessage(ans1[rand], input);
break;
case 3:
printmessage(ans1[rand], input);
break;
}
可以简单地变成
printmessage(ans1[rand], input);