IndexOutOfBoundsException而不是结束循环

安德烈·富特(AndréFoote)

为什么

int row = 1;
// multiArray[col].length = 6

while(multiArray[col][row] > 1 && row < multiArray[col].length) {
    sum += multiArray[col][row];
    row++;
}

返回IndexOutOfBoundsException吗?

我以为如果行变成6,while循环就不会运行,而不是返回错误。

格特曼

&&运算符是短路运算符这意味着,如果它可以说出左侧操作数的结果,那么它将不会评估右侧。

切换操作数的顺序,因此首先进行入站检查,如果失败,则不会发生数组值检查,如果进行了评估,则将引发异常。

while(row < multiArray[col].length && multiArray[col][row] > 1) {

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章