为了账号安全,请及时绑定邮箱和手机立即绑定

求解 最大值输不出来为什么呀?

求解 最大值输不出来为什么呀?

精慕门6253780 2016-12-08 16:04:20
package com.aini; public class liuwoaini { public static void main(String[] args) { int[] nums = new int[]{61,23,4,74,13,148,20}; int a=nums[0]; for(int i=0;i<nums.length;i++){ if(a<nums[i+1]) {a=nums[i+1];} } System.out.println("最大的数字"+a); } }
查看完整描述

2 回答

已采纳
?
朕日理万机

TA贡献27条经验 获得超28个赞

数组越界。当for循环执行到i=6时,满足条件i<nums.length,执行循环体,

第8行:if(a<nums[i+1])   会去访问a[7],导致数组越界。因为a的下下标只能从0到6。

所以你应该把循环条件改成i<nums.length-1,只循环到倒数第二个数。在循环体里会通过a[i+1]访问到最后一个数。

查看完整回答
1 反对 回复 2016-12-09
?
car

TA贡献184条经验 获得超33个赞

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7

 nums.length-1

查看完整回答
反对 回复 2016-12-08
  • 2 回答
  • 0 关注
  • 1344 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信