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

关于跳出循环的有关问题?

2012-04-17 
请教各位关于跳出循环的问题???for (int i 0 i 40 i++){for (int j 0 j 19 j++){if (j 19)

请教各位关于跳出循环的问题???
for (int i = 0; i < 40; i++)
  {
   
  for (int j = 0; j < 19; j++)
  {
  if (j == 19)
  break ; 
  for (int k = 0; k < jxyongshi1[j]; j++)
  f1[i, 0] = f1[i, 0] + w * p[j, Chrom1[i, j] + k];
  }
   
在运行时总是提示 jxyongshi1[j]/*(j的值此时是19)*/索引超出数组下限。我加了一个break语句还是出现这样的问题,请问是为什么?

[解决办法]
j的范围是小于19,不包含19,你访问19的下标当然出错了,记住下标从0开始,19是第20个,你的jxyongshi1数组应该只有19个,没20

j不会等于19,所以break无效的,而且第三个for循环,又对j做了++的操作,你肯定会出问题啊

j=18时,你就应该跳出,否则第三个for ++ 后j=19
[解决办法]
for (int i = 0; i < 40; i++)
{

for (int j = 0; j < 19; j++)
{
if (j == 18)//改这里
break ;
for (int k = 0; k < jxyongshi1[j]; j++)
f1[i, 0] = f1[i, 0] + w * p[j, Chrom1[i, j] + k];
}
这样就好了
[解决办法]
for (int k = 0; k < jxyongshi1[j]; j++)
应该是?
for (int k = 0; k < jxyongshi1[j]; k++)

[解决办法]
重0开始 就是0-4有5个数 0 1 2 3 4

热点排行