6-1幫我看看應該咋改
? for( k=0;k<total;k++){
? ? ? ?
System.out.println("請輸入第"+""+(k+1)+"輛車的序號");
chooseNums[k]=a.nextInt();
}?
? ? ??
? ? ? ?System.out.println("請輸入租車天數");
? ? ? ?int days =a.nextInt();
? ? ? ? int totalMoney=0;
? ? ? ? System.out.println("您的賬單:");
? ? ? ? System.out.println("***可載人的車有:");
? ? ? ? int money1=0;
? ? ? ? int money2=0;
? ? ? ? int money3=0;
? ? ? ? int money=0;
? ? ? ? int j;
? ? ? ? for(j=0;j<total;j++){
if(messenge[chooseNums[k]] instanceof Car){
? ? ? ? ??
? ? ? ? System.out.println(messenge[chooseNums[k]].name);
? ? ? ? money1+=messenge[chooseNums[k]].rent;
}else if(messenge[chooseNums[k]] instanceof PickUp){
?System.out.println(messenge[chooseNums[k]].name);
?money2+=messenge[chooseNums[k]].rent;
}
提示數組過界
2017-04-15
package project6;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
? ? ? ?System.out.println("歡迎使用答答租車系統");
? ? ? ?System.out.println("您是否要租車:是1 ?否0");
? ? ? ?Scanner a = new Scanner(System.in);
? ? ? ?AutoMobile[] messenge={new Car(1,"奧迪A4",500,4),new Car(2,"馬自達6",400,4),
? ? ?new PickUp(3,"皮卡雪",450,4,2),new Car(4,"金龍",800,20),
? ? ?new Trunk(5,"松花江",400,4),new Trunk(6,"依維柯",1000,20)};
? ? ? ?int i =a.nextInt();
? ? ? ?if(i==1){
? ? ? System.out.println("您可租車的類型及其價目表");
? ? ?System.out.println("序號\t汽車名稱\t租金\t容量");?
? ? ? ?
? ?for(int j=0;j<6;j++){
? ? ?
if(messenge[j] instanceof Car){
? ??
? ? ? System.out.println(messenge[j].num+"\t"+messenge[j].name+"\t"+messenge[j].rent+"元/天"+"\t"+"載人:"+((project6.Car) messenge[j]).getPeopleNums()+"人");
? ? ??
? ? ? ?}
? ? ? ? ?if(messenge[j] instanceof Trunk){
? ? ? System.out.println(messenge[j].num+"\t"+messenge[j].name+"\t"+messenge[j].rent+"元/天"+"載貨:"+((Trunk) messenge[j]).getThingNums()+"噸");
? ? ? ?}
? ? ? ? if(messenge[j] instanceof PickUp){
? ? ? ? System.out.println(messenge[j].num+"\t"+messenge[j].name+"\t"+messenge[j].rent+"元/天"+"載人:"+((PickUp) messenge[j]).getPeopleNums()+"載貨:"+((PickUp) messenge[j]).getThingNums()+"噸");
? ? ? ?}
}
? ? ? ?}
? ? ? ?System.out.println("請輸入您要租汽車的數量");
? ? ? ? int total =a.nextInt();
? ? ? ? int[] chooseNums = new int [total];
? ? ? ?
? ? ? ? int k;
? ? ? for( k=0;k<total;k++){
? ? ? ?
System.out.println("請輸入第"+""+(k+1)+"輛車的序號");
chooseNums[k]=a.nextInt();
? ? ? }
? ? ??
? ? ? ?System.out.println("請輸入租車天數");
? ? ? ?int days =a.nextInt();
? ? ? ? int totalMoney=0;
? ? ? ? System.out.println("您的賬單:");
? ? ? ? System.out.println("***可載人的車有:");
? ? ? ? int money1=0;
? ? ? ? int money2=0;
? ? ? ? int money3=0;
? ? ? ? int money=0;
? ? ? ? int j;
? ? ? ? for(j=0;j<total;j++){
if(messenge[chooseNums[k]] instanceof Car){
? ? ? ? ??
? ? ? ? System.out.println(messenge[chooseNums[k]].name);
? ? ? ? money1+=messenge[chooseNums[k]].rent;
}else if(messenge[chooseNums[k]] instanceof PickUp){
?System.out.println(messenge[chooseNums[k]].name);
?money2+=messenge[chooseNums[k]].rent;
}
? ? ? }
? ? ? ? System.out.println("***載貨的車有:");
? ? ? // for(j=0;j<total;j++){
? ? ? ? if(messenge[chooseNums[k]] instanceof Trunk){
? ? ? ?
? ? ? ? System.out.println(messenge[chooseNums[k]].name);
? ? ? ?money3+=messenge[chooseNums[k]].rent;
? ? ? ? }
? ? ? ? else if(messenge[chooseNums[k]] instanceof PickUp){
? ? ? ? System.out.println(messenge[chooseNums[k]].name);
? ? ? ? }
? ? ? ?//}
? ? ? ? money=money1+money2+money3;
? ? ? ? totalMoney=money*days;
? ? ? ?System.out.println("租車的總價格:"+""+totalMoney+"元");
}
}
2017-04-15
代碼沒貼全啊,你貼出來的這個代碼片段沒法判斷各個數組的長度,另外,既然你知道了是數組越界,控制臺應該還會提示行數吧, 根據行數就能很容易定位錯誤在哪