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