2016-01-13 60 views
-2

以下是一个简单的代码挑战。第一块是我的代码。第二块是挑战作者提供的正确代码。为什么我的代码不能在这个挑战中工作?

虽然我看到'正确'的代码是如何工作的,但是我看不到我的代码不怎么样。任何人都可以对此有所了解吗?

//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; 
//} 
+1

问题是?.. – TheLostMind

回答

3

出现该问题是因为增量在循环发生,你已经使用i+n这发生在你的迭代循环只有两次的。

你需要打印它n次,所以你需要有正确的迭代增量。

同样在代码中,您已经使用了单个变量,并且在每次迭代中连接它们将导致附加str varibale的整个修改内容。想想str开始时是“A”。然后你将它追加到"A" + "A"。之后,你有"AA" + "AA"然后"AAAA" + "AAAA"等等... 正如你所看到的,你在每个迭代步骤翻番的第一个str量(建议从汤姆编辑)

检查正确的方法的代码这样做的它

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

@克里斯你能记住这作为一个答案,如果这能解决您的问题。 –

+0

在这个网站上有什么人与低投票问题? – Chris

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; 
} 
+0

为什么当其他答案正确时你自己回答问题? –

相关问题