它是一个贷款计算器。我有一个像
的循环 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。
答案 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);