可以运行,但是为什么说Systen.out.println((i+1)+"."+carsForRent[i].toString());出现异常?

来源:12-2 项目问题解析 1

黄骏洲

2019-05-28 15:26

public class Rent {

public static void main(String[] args)throws FileNotFoundException {

Car car = new Car();

Car[] carsForRent = {new Manned("奥迪A4",500,4),new Manned("马自达6",400,4),new MannedTruck("皮卡雪6",450,4,2),new Manned("金龙",800,20),new Truck("松花江",400,4),new Truck("依维柯",1000,20)};

System.out.println("欢迎使用答答租车系统:");

System.out.println("您是否要租车:1是 0否");

Scanner scan = new Scanner(System.in); 

int input = scan.nextInt();

if(input == 1){

System.out.println("您可租车的类型及其价目表:");

System.out.println("序号 \t\t汽车名称 \t\t租金 \t\t容量\t");


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

System.out.println((i+1) +". " + carsForRent[i].toString());

}


}

}

}

}


写回答 关注

2回答

  • Georgephy
    2019-05-29 00:50:50

    楼上说的对,你想想最后一次是不是i=6,因为你carForRent[i]下标是从0开始的,长度是6,,最后一次是carForRent[6],数组下标越界了,ArraysIndexOutOfBoundException

  • 蜗牛_靖赜居士
    2019-05-28 16:17:29

    <= 改成 < ,因为,carsForRent最后一个数据的index是carsForRent.length - 1

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530712 学习 · 6091 问题

查看课程

相似问题