-1

//所以这是我的代码

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;

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

4

2 回答 2

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;
}

此外,您可能应该根据您的上下文为类及其字段指定一个更有意义的名称。

于 2013-11-11T00:30:10.347 回答
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");
于 2013-11-11T00:33:25.027 回答