2016-01-13 27 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

爲什麼當其他答案正確時你自己回答問題? –

相關問題