-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

メソッドから 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

メソッドを 2 回呼び出す必要があります。

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 に答える