获取用户名的Java代码运行报数组索引越界错误如何排查
数组索引越界问题排查
错误根因
- Java数组采用0基索引规则:长度为
length的数组,合法索引取值范围是0到length - 1,访问超出这个范围的索引就会抛出ArrayIndexOutOfBoundsException - 你提供的代码中,for循环的终止条件写为
i <= user.length:示例中user数组长度为5,循环执行到i=5时会尝试访问user[5],该索引不存在,直接触发越界错误。
错误定位行:
// 条件中的等号是问题根源 for (int i = 0; i <= user.length; i++)
修正方案
将循环终止条件的<=改为<,保证循环变量i的最大值为user.length - 1,始终落在合法索引范围内。
修正后完整代码:
public class usernames { public static void main(String[] args) { int user[] = { 1, 2, 3, 4, 5 }; // 修正:移除等号,匹配数组索引规则 for (int i = 0; i < user.length; i++) System.out.println(user[i]); } }
额外优化建议
如果遍历数组时不需要操作索引值,可以直接使用Java增强for循环,不需要手动维护索引变量,从根源上避免索引写错导致的越界问题,写法如下:
for (int item : user) { System.out.println(item); }
内容的提问来源于stack exchange,提问作者Oblivious
相关产品推荐
相关产品推荐

