-1

そのローン計算機。私は次のようなループを持っています

    public String loopresult(){
     for (int i=1; i<10; i++)
     return ((i) + "..........." + (i)*(i))
     }

このクラスは文字列値を返さなければならないと言われています。私は試した

    valueOf.String((i) + "........" +(i)*(i)))

しかし、うまくいきませんでした。

txtArea に追加する必要があります。

    txtArea.append(loopresult())

私がtxtAreaの中に欲しいのは次のようなものです

2..........4 3........9 など、この行には int と string の両方が含まれることを意味します。

4

4 に答える 4

6

ほとんどの場合、あなたが意図したのは次のとおりです。複数の値ではなく、1 つの値のみを返すことができます。ところで、すでに文字列があるため、エラー メッセージが混乱しています。

 public String loopresult(){
     StringBuilder sb = new StringBuilder();
     for (int i=1; i<10; i++)
         sb.append(i + "..........." + i*i + "\n");
     return sb.toString();
 }
于 2013-05-31T08:14:53.827 に答える
0

戻り値は一度だけ返されます。for ループの後に追加して返す必要があります。以下のコードを試してください。

public String loopresult() {
        String finalValue = "";
        for (int i = 1; i < 10; i++) {
            finalValue += (i) + "..........." + (i) * (i);
        }
        return finalValue;
    }
于 2013-05-31T08:13:44.660 に答える
-1

forループを使用しているため、コンパイラは警告を発しています。for ループ内の条件 (何らかの動的な値) が初めて失敗し、フローが for ループに進まないことが発生する可能性があります。そのため、コンパイラは for ループの後に return ステートメントを書くことを強制しています。

また、@Peter Lawreyが言ったように、関数から複数の値を返すことはできません。したがって、Peter Lawrey によって与えられた を使用できます

StringBuilder sb = new StringBuilder();
     for (int i=1; i<10; i++)
         sb.append(i + "..........." + i*i + "\n");
     return sb.toString();

または、for ループをdo..whileに置き換えることもできますが、これは解決策ではないと思いますが、コンパイラが for ループの後に return ステートメントを強制する理由を示すためにこれを与えています。

int i = 1;
do{
    return ((i) + "..........." + (i) * (i));
    ++i;
}while(i<10);
于 2013-05-31T08:29:28.690 に答える