java - 为什么我的 java 代码一开始就这么早就结束了?
问题描述
我试图通过分隔数组并在最后打印来接收 5 个产品价格和 5 个产品名称,所以我纠正错误直到出现此错误:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 5 at 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++;
}
推荐阅读
- python - PyQt5:QTableView 拖放单元格而不是行
- api - 将 fitbit 数据上传到不同的个人资料
- javascript - 正则表达式的制表符验证器不占用任何空间
- laravel - 在 Virtualmin 上托管 Nuxt 应用程序和 Laravel Api
- linux - 运行脚本未在 EC2 上显示
- docker - 如何在 Go 中正确设置 CORS?
- flutter - 我可以在颤动中增加应用栏的高度吗?
- tcp - 一次将 GB 字节写入 TCP 套接字是一种好习惯吗?
- sql - 如何在查询子查询的聚合计数时避免聚集索引扫描
- html - 为什么位置属性会改变显示:flex?