Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我会得到ArrayIndexOutOfBoundException?_Java - Fatal编程技术网

Java 为什么我会得到ArrayIndexOutOfBoundException?

Java 为什么我会得到ArrayIndexOutOfBoundException?,java,Java,我不知道为什么当我运行它时,它会设法通过第一部分,但一旦它运行完数字并将其全部打印出来。但一旦完成,就会显示java.lang.ArrayindexOutOfBoundsException package database; import java.util.Scanner; public class Run { public static void main(String[] args) { int counting =0; int count

我不知道为什么当我运行它时,它会设法通过第一部分,但一旦它运行完数字并将其全部打印出来。但一旦完成,就会显示
java.lang.ArrayindexOutOfBoundsException

package database;
import java.util.Scanner;    
public class Run {
    public static void main(String[] args) {
        int counting =0;
        int count =  0;
        int totalAddUp =0;
        int finalNumber = 0;
        int searchingPlus = 0;
        int caseSwitching = 0;

        Scanner scan = new Scanner(System.in);
        int userLength = 1000000000;

        System.out.println("Please enter the number you wish to find exponentially: ");
        int userInput = scan.nextInt();

        System.out.println("Please enter the length in which you wish to find: ");
        counting = scan.nextInt();

        int[] array = new int[counting];

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

            finalNumber = userInput + finalNumber;
            array[totalAddUp] = finalNumber;
            System.out.println(array[totalAddUp]);
            totalAddUp++;
        }

        System.out.println("Press 1 to search for a certain number or press 2 to end the program");

        switch(caseSwitching) {

        case 1:
            System.out.println("Please enter a number in which you would like to search");
            int searching = scan.nextInt();
            while(searchingPlus > userInput) {
                if(userInput == array[searchingPlus]) {
                    System.out.println(array[searchingPlus]);
                }
                searchingPlus++;
            }

            break;
        case 2:
            System.out.println("Thanks have a great day");
            break;
        }
    }
}
包数据库;
导入java.util.Scanner;
公营课{
公共静态void main(字符串[]args){
整数计数=0;
整数计数=0;
int totalAddUp=0;
int finalNumber=0;
int searchingPlus=0;
int caseSwitching=0;
扫描仪扫描=新扫描仪(System.in);
int userLength=100000000;
System.out.println(“请输入您希望以指数形式查找的数字:”);
int userInput=scan.nextInt();
System.out.println(“请输入您希望查找的长度:”;
计数=scan.nextInt();
int[]数组=新的int[计数];
对于(int i=0;iuserInput){
if(userInput==数组[searchingPlus]){
System.out.println(数组[searchingPlus]);
}
searchingPlus++;
}
打破
案例2:
System.out.println(“谢谢,祝你有美好的一天”);
打破
}
}
}

您得到了
java.lang.ArrayindexOutOfBoundsException
,因为在
for
循环中,您将进入
array.lenth+1

试试这个:

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

        finalNumber = userInput + finalNumber;
        array[totalAddUp] = finalNumber;
        System.out.println(array[totalAddUp]);
        totalAddUp++;
    }

并且您没有任何要获取的输入。

请注意以下循环:

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

        finalNumber = userInput + finalNumber;
        array[totalAddUp] = finalNumber;
        System.out.println(array[totalAddUp]);
        totalAddUp++;
    }
另外,请注意添加以下行以将值读取到
案例切换中

caseSwitching=scan.nextInt()

for(int i=0;i
在这里,这应该是可行的,因为“array.length+1”增加了数组限制

您能解释一下您的
案例1:
试图做什么吗?尝试使用i>for(int i=0;i for(int i = 0; i < array.length + 1; i++) { finalNumber = userInput + finalNumber; array[totalAddUp] = finalNumber; System.out.println(array[totalAddUp]); totalAddUp++; }
     for(int i = 0; i < array.length ; i++) {

        finalNumber = userInput + finalNumber;
        array[totalAddUp] = finalNumber;
        System.out.println(array[totalAddUp]);
        totalAddUp++;
    }
        finalNumber = userInput + finalNumber;
        array[totalAddUp] = finalNumber;
        System.out.println(array[totalAddUp]);
        totalAddUp++;
    }