-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

您的意图很可能是以下内容。只能返回一个值,不能返回多个值。顺便说一句,您已经有一个字符串,因此您的错误消息很混乱。

 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 回答
0

我的建议是,为了让代码更简洁、更易于阅读,让函数返回每个单独贷款的 int 值,然后在该逻辑之外构造字符串。如果我正确理解你的问题。

给我们更多的细节。你想在文本区写什么?几种不同的贷款价值?

于 2013-05-31T08:39:12.997 回答
-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();

或者你可以用do..while替换你的 for 循环,其中 flow 肯定会进入循环,虽然我不认为这是一个解决方案,但我给出这个是为了说明为什么编译器在 for 循环之后强制返回语句。

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