如何从方法返回2个值?

时间:2013-11-11 00:29:31

标签: java methods

//继承我的代码

public static String askQ(String str)
{           
    Scanner M = new Scanner(System.in);
    System.out.println(str);
    String ans = M.nextLine();

    return ans;
}

//程序的这一部分是一个重复的问题方法

public static int getValues(int First, int Second)
{
    First = Integer.parseInt(askQ("First Number"));
    Second = Integer.parseInt(askQ("Second Number"));

    return First;
    return Second;

//尝试返回第二个时出错     }
//此部分需要从输入中获取值,以便稍后在计算器中使用

2 个答案:

答案 0 :(得分:2)

您无法从方法返回两个值。相反,将值封装在类中并实例化它。

public class Holder {
    private int first;
    private int second;
    // getters, setters, and constructors
}

相应地更改方法

public static Holder getValues(int first, int second)
{
    first = Integer.parseInt(askQ("First Number"));
    second = Integer.parseInt(askQ("Second Number"));
    Holder holder = new Holder();
    holder.setFirst(first);
    holder.setSecond(second);

    return holder;
}

请注意,java约定声明变量名称应以小写字符开头。此外,如果您要覆盖它们,则将参数传递给此方法没有意义。摆脱你的方法参数并将它们声明为局部变量

public static Holder getValues()
{
    int first = Integer.parseInt(askQ("First Number"));
    int second = Integer.parseInt(askQ("Second Number"));
    Holder holder = new Holder();
    holder.setFirst(first);
    holder.setSecond(second);

    return holder;
}

此外,您可能应该为类及其字段提供更有意义的名称,具体取决于您的上下文。

答案 1 :(得分:0)

你应该只调用该方法两次:

public int getQuestionValue(String questionToAsk)
{
    answer = Integer.parseInt(askQ(questionToAsk));
    return answer;
}

//.... how to call it....

int answerOne = getQuestionValue("First Number");
int answerTwo = getQuestionValue("Second Number");