请教一个菜鸟的问题,等待中...............
kye= "关键字 ";
for(int i=0; i <keys.Length;i++ )
{ if(keys[i]==key)
return i;
return -1;
}
上面的代码:提示检测无法访问的代码:其中keys为一字符串数组.
假如在字符串数组中找不到值为"key "的时候会执行:return -1
相反如果找到了会执行return i不执行return -1 怎么会提示检测到无法访问的代码呢?
------解决方案--------------------kye= "关键字 ";
for(int i=0; i <keys.Length;i++ )
{
if(keys[i]==key)
return i;
return -1;
}
首先说,上面的代码绝对不符合你的理解,他实际就执行一次:判断keys[0]是否==key,如果相等,返回0,如果不等返回-1,而i++这句代码实际上是无法执行的
------解决方案--------------------正确的代码
for(int i=0; i <keys.Length;i++ )
if(keys[i]==key)
return i;
return -1;
其实相当于
for(int i=0; i <keys.Length;i++ )
{
if(keys[i]==key)
{
return i;
}
}
return -1;
你可以比较一下
------解决方案--------------------for循环翻译成while循环的话
int i=0;
while(i <keys.length)
{
if(keys[i]==key)
return i;
return -1;
i++;
}
从这里就可以清楚的看到无法访问的代码就是i++了