以下是一个简单的代码挑战。第一个块是我的代码。第二个块是挑战作者提供的正确代码。
虽然我看到'正确'代码工作,我没有看到我的代码没有。任何人都可以对此有所了解吗?
//MY CODE
public String stringTimes(String str, int n) {
for(int i=0; i<n; i=i+n){
str = str + str;
}
return str;
}
//==================================================
//CORRECT CODE
// String result = "";
// for (int i=0; i<n; i++) {
// result = result + str; // could use += here
// }
// return result;
//}
答案 0 :(得分:3)
出现问题的原因是你使用i+n
循环中发生的增量恰好只迭代你的循环两次。
您需要打印n
次,因此您需要具有正确的迭代增量。
同样在代码中,您使用单个变量并在每次迭代中连接相同的变量将导致附加str varibale的整个修改内容。想想str
是&#34; A&#34;在开始。然后将其附加到"A" + "A"
。之后你有"AA" + "AA"
然后"AAAA" + "AAAA"
等等......
正如您所看到的,您在每个迭代步骤中将第一个str
的数量加倍(来自Tom的建议编辑)
检查代码的正确方法
public String stringTimes(String str, int n) {
String result="";
for (int i = 0; i < n; i++) {
//str = str+str;//(erronous code here)
result = result +str;
}
return result;
}
答案 1 :(得分:0)
for(int i=0; i<n; i++) { //i starts at 0, as long as i is less than n, add 1 to i.
str = str + str; //the string becomes itself plus itself.
}
return str;
}