我不明白/ * i * /如何无法访问?

时间:2017-05-16 03:51:53

标签: c#

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

我必须遗漏一些显而易见的事情,而且已经很晚了,但为什么我会无法接触?

2 个答案:

答案 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;
    }
}