初学者循环问题

Lea*_*ast 0 c++ for-loop

[编辑]哎呀代码中有一个错误,现在对问题的所有回答看起来很古怪,但基本上for循环曾经是,(i = 0; i <15; i ++).我也进行了编辑,使问题更加清晰.[/ EDIT]

我试图创建一个for循环,它检查一个16元素数组,所以它从0到15循环.然后我使用i变量,但有时我= = 16,这会导致问题超出界限.

我有一个解决方案,但它似乎不优雅,这让我觉得我错过了一些东西.我已经尝试过while循环,但是我永远不会得到任何循环从0到15,并且永远不会以大于15的值结束.

有没有办法让循环去检查数组的所有16个元素,而在循环结束时从不大于15?

int i;

for(i=0; i<16; i++)
{
    someClass.someMethod(i);

    if(someClass.Test())
    {
        break;
    }
}



if (i == 16)
{
    i = 15;
}
Run Code Online (Sandbox Code Playgroud)

Bil*_*ard 6

我建议使用除i循环完成后的其他变量.使用for循环而不是while循环的标准是事先准确知道for循环执行的次数.如果您已经知道这一点,只需将其他变量设置为循环的结束值并使用它而不是给出i双重目的.

int j = 15;

for(int i=0; i <= j; i++)
{
    someClass.array[i];
}

// continue on using j, which value hasn't changed
Run Code Online (Sandbox Code Playgroud)

  • 这个答案的第二部分是你应该从问题中得到的真正建议,除非你有充分的理由,否则不要重复使用for循环中的变量. (2认同)