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

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);
	}
	}


精慕门6253780
浏览 1345回答 2
2回答

朕日理万机

数组越界。当for循环执行到i=6时,满足条件i<nums.length,执行循环体,第8行:if(a<nums[i+1])   会去访问a[7],导致数组越界。因为a的下下标只能从0到6。所以你应该把循环条件改成i<nums.length-1,只循环到倒数第二个数。在循环体里会通过a[i+1]访问到最后一个数。

car

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 nums.length-1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java