2017-05-16 95 views
0
int counter = 0; 
string lastTwo = str.Substring(str.Length-2, 2); 
string currentTwoChar = null; 

for (int i = 0; i < str.Length; i++) //why is i unreachable? 
{ 
    currentTwoChar = str.Substring(i, 2); 

    if (currentTwoChar == lastTwo) 
    { 
      counter++; 
    } 
    return counter; 
} 

我必須錯過一些明顯的東西,而且這是深夜,但爲什麼我無法訪問?我不明白/ *我* /無法訪問?

回答

4

它應該是:

for (int i = 0; i < str.Length; i++) //why is i unreachable? 
{ 
    currentTwoChar = str.Substring(i, 2); 

    if (currentTwoChar == lastTwo) 
    { 
     counter++; 
    } 

} 
return counter; // Put it here instead 
+0

就在我面前,我無法看到它!謝謝! – Jay

+0

它有時會發生:) –

0

看到你已經使用了return語句的地方。它在第一次迭代期間肯定會被執行,而不管任何條件如何,所以不會有任何機會執行i++或第二次循環。編譯器確定了這種情況並警告你。所以你必須改變return語句的位置,或者重新考慮你想要實現的邏輯。

上面的回答解決了您的問題,如果天氣好的所有迭代後返回值,你可以試試這個還有:

for (int i = 0; i < str.Length; i++) //why is i unreachable? 
{ 
    // conditional return 
    if(some_other_condition) 
    { 
     return counter; 
    } 
} 
+0

謝謝,我盯着屏幕這麼久沒有看到明顯的 – Jay

+0

@Jay Cool高興地幫助你 –