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;
}
我必须遗漏一些显而易见的事情,而且已经很晚了,但为什么我会无法接触?
答案 0 :(得分:4)
应该是:
= 3422
答案 1 :(得分:0)
查看您使用return语句的位置。无论条件如何,它肯定会在第一次迭代期间执行,因此不会有任何机会执行i++
或第二次循环。编译器发现了这种情况并警告你。所以你必须改变return语句的位置,或者重新思考你想要实现的逻辑。
如果可以在所有迭代后返回值,上面的答案可以解决您的问题,您也可以尝试这样做:
for (int i = 0; i < str.Length; i++) //why is i unreachable?
{
// conditional return
if(some_other_condition)
{
return counter;
}
}