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

谁能帮我检查一下一下一段代码,谢谢


package com.imooc;

import java.util.Scanner;

import java.util.Arrays;

public class HelloWorld {

public static void main(String[] args){

Scanner input=new Scanner(System.in);

int L=input.nextInt();                       //输入数组长度

int[] array=new int[L];

  for(int i=0;i<=array.length;i++){

   array[i]=input.nextInt() ;              //初始化数组的每一个元素

  }

 System.out.println("数组:"+Arrays.toString(array));    //利用Arrays输出数组


}

}

不知为何,在输出整个数组之前一切正常,但是无法输出数组,似乎还停留在之前的循环结构里面,直至输入数字个数大于L,然后报错。


正在回答

2 回答

把:  for(int i=0;i<=array.length;i++){

改为:  for(int i=0;i<array.length;i++){

--------------------------------------解释如下--------------------------------------------

假设条件:数组长度为 10

故:array.length = 10

那么它的索引则为:0,1,2,3,4,5,6,7,8,9

故:i的最大取值为 10

故:array[10] 索引超出范围,即: ArrayIndexOutOfBoundsException

--

建议:下次提问时,贴出错误信息。代码使用编辑器左上角的代码语言功能


0 回复 有任何疑惑可以回复我~
#1

jerseyyu 提问者

非常感谢!
2015-08-02 回复 有任何疑惑可以回复我~

数组长度问题。

for里面多了一个=。

在之前的练习中,你肯定没有仔细学,没有完全掌握,忽略掉这个细节了。

0 回复 有任何疑惑可以回复我~
#1

jerseyyu 提问者

yep,我以为java的for循环和c++一样
2015-09-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

谁能帮我检查一下一下一段代码,谢谢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信