为什么我的java代码在第一时间就这么早结束了



我试图通过分离数组并在最后打印来接收5个产品的价格和5个产品名称,所以我正在更正错误,直到出现此错误:线程中的异常"主";java.lang.ArrayIndexOutOfBoundsException:5在javaapplication3.javaapplication3.main(javaapplication3.java:23(

这是我的最后一个老板(很抱歉这个帖子被关闭(

package javaapplication3;
import java.util.Scanner;
public class JavaApplication3 {

public static void main(String[] args) {
Scanner read = new Scanner(System.in);
double n [] = new double [5];
String name[] = new String[5];
double media;    
int contar=0;
for(int counter=0; counter<=n.length; counter++)
{
System.out.println("Type the product "+counter+ " price");
n[counter] = read.nextDouble();

}

for(int i =0; i<=name.length;i++)
{
System.out.println("Type the product "+n[i]+" name");
name[i] = read.nextLine();
}
while(contar<=5)
{
System.out.println(n[contar]);
if(n[contar]<=50)
{
System.out.println("The "+name[contar]+" costs" +n[contar]);
}
media = n [contar]/5;
contar++;
}




}
}

我不知道你想做什么,但在第二个和第三个循环中,你没有更新计数器变量,所以它会导致无限循环。

在第二个循环中,您正在递增计数器,但控制循环的变量是i,在第三个循环中您也在递增计数器,但是变量名是contar。

你的第二个和第三个循环应该看起来像

while (i<=6)
{
System.out.println("Type the product "+n[i]+" name");
name[i] = read.nextLine();
i++;
}
while(contar<=6)
{
System.out.println(n[contar]);
if(n[contar]<=50)
{
System.out.println("The "+name[contar]+" costs" +n[contar]);
}
media = n [contar]/5;
contar++;
}

最新更新