Java IndexOutOfBoundsException

Java IndexOutOfBoundsException,java,arrays,exception,Java,Arrays,Exception,这里的Java代码非常简单。。但是有一种出格的感觉,我不知道为什么?任何帮助都会很好 在任何人问这是否是家庭作业之前,不,不是,是为了备考 import java.util.Scanner; public class exampractice { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] a = {1,2,3}; i

这里的Java代码非常简单。。但是有一种出格的感觉,我不知道为什么?任何帮助都会很好

在任何人问这是否是家庭作业之前,不,不是,是为了备考

import java.util.Scanner;
public class exampractice {

    public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

        int[] a = {1,2,3};
        int min = a[0];
        int max = a[0];

        for (int i = 0; i <= a.length; i++){
            if(a[i] < min)
                min = a[i];
            else
                if(a[i] > max)
                    max = a[i];
        }

        System.out.println("Min is"+min+ "\nMax is: " + max);
    }
}
import java.util.Scanner;
公开课考试实践{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
int[]a={1,2,3};
int min=a[0];
int max=a[0];
对于(int i=0;i max)
max=a[i];
}
System.out.println(“最小值为“+Min+”\n最大值为“+max”);
}
}

它应该是
for(int i=0;i当a是一个数组并且数组是基于零的索引时,您必须将它从0循环到a.length-1。这足以更改
i数组使用基于0的计数,并且在for循环中,ii应该介于0和a.length-1之间,因为数组的第一个元素以键0开始。

所以for条件应该严格小于而不是小于或等于a.length。

你的for循环应该是
,而不是
FACEPALM欢呼的家伙们。.哈哈,你犯了一个“一个接一个”的错误。通常你应该检查代码的边缘情况。尤其是总是检查=当然)。更改

for(index = 0; index < array.length ; index++)
 char aString[MAXLENTH];  // declare a string array
 char * aString ;
 aString = (char *) malloc(MAXLENGTH]; // or malloc it

 // constructing a string with catenation
 aString[0] = '\0';       // now either way this is guaranteed an empty string
 if((aString = (char *) malloc(MAXLENGTH) == NULL){
     // report out of memory
     exit(BAD);
 }
for (int i = 0; i <= a.length; i++)
for (int i = 0; i < a.length; i++)
for (int i = 0; i < a.length; i++)
for (int i = 0; i < a.length; i++)
for (int i = 0; i < a.length; i++) {