首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问一个初学者的有关问题,等待中.

2012-01-16 
请教一个菜鸟的问题,等待中...............kye 关键字 for(inti0i keys.Lengthi++){if(keys[i]k

请教一个菜鸟的问题,等待中...............
          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++了

热点排行