返回循环结果为另一种方法

时间:2013-05-31 08:08:59

标签: java string

它是一个贷款计算器。我有一个像

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

它说这个类必须返回String值。 我试过了

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

但没有工作。

我必须在txtArea中附加它。

    txtArea.append(loopresult())

我想在txtArea中想要的是

2 ......... 4 3 ......... 9 所以,这意味着这一行将包含int和string。

4 个答案:

答案 0 :(得分:6)

您最有可能的是以下内容。您只能返回一个值,而不是多个值。 BTW你已经有了一个字符串,所以你的错误信息很混乱。

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

答案 1 :(得分:0)

返回值只返回一次,你必须在for循环后追加并返回,试试下面的代码

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

答案 2 :(得分:0)

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

告诉我们更多详情。你想写什么文字区?几种不同的贷款价值?

答案 3 :(得分:-1)

编译器正在发出警告,因为您正在使用进行循环。可能会发生for循环中的条件(对于某些动态值)第一次本身失败而且flow不会进入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);