决定使用方法

时间:2014-11-20 22:17:07

标签: java

  

任务:

     
      
  • 包括决定以及上述所有结构。
  •   
  • 定义并使用包含参数的一个(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.

    }

1 个答案:

答案 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);