為什么switch循環(huán)中的不會有指針報錯,而后面for循環(huán)中會有指針報錯?????
求解
package?com.java;
import?java.util.Scanner;
import?javax.xml.validation.SchemaFactoryConfigurationError;
public?class?Mane?{
?public?static?void?main(String[]?args)?{
??//?TODO?Auto-generated?method?stub
????????System.out.println("歡迎使用答答租車系統(tǒng):");
????????System.out.println("您是否要租車:1是?0否");
????????Scanner?scanner=new?Scanner(System.in);
????????int?respond=scanner.nextInt();
????????if(respond==1)
????????{
?????????System.out.println("您可租車的類型及其價目表:");
?????????System.out.println("序號?汽車名稱?租金?容量"?);
?????????System.out.println("1.??奧迪A4???500元/天???載人:4人");
?????????System.out.println("2.??馬自達(dá)6??400元/天???載人:4人");
?????????System.out.println("3.??皮雪卡6??450元/天???載人:4人??載貨:2噸");
?????????System.out.println("4.??金龍?????????800元/天???載人:20人");
?????????System.out.println("5.??松花江??????400元/天???載貨:4噸");
?????????System.out.println("6.??依維柯?????1000元/天??載貨:20噸");
?????????System.out.println("請輸入您要租汽車的數(shù)量:");
?????????int?number=scanner.nextInt();
?????????Car?[]car=new?Car[6];
?????????int?total=0;
?????????for(int?i=0;i<number;i++)
?????????{
??????????System.out.println("請輸入第"+(i+1)+"輛車的序號:");
?????????????int?carNumber=scanner.nextInt();
??????????switch?(carNumber)?{
????case?1:
?????car[i]=new?AodiA4();
?????total=car[i].cost+total;
?????break;
????case?2:
?????car[i]=new?Mazida6();
?????total=car[i].cost+total;
?????break;?
????case?3:
?????car[i]=new?Pixueka6();
?????total=car[i].cost+total;
?????break;?
????case?4:
?????car[i]=new?Jinlong();
?????total=car[i].cost+total;
?????break;
????case?5:
?????car[i]=new?Songhuajiang();
?????total=car[i].cost+total;
?????break;?
????case?6:
?????car[i]=new?Yiweike();
?????total=car[i].cost+total;
?????break;
????default:
?????break;
????}
?????????}
?????????int?totalCost=0;
?????????System.out.println("請輸入租車天數(shù):");
?????????int?days=scanner.nextInt();
?????????System.out.println(total*days);
?????????for(int?i=0;i<car.length;i++)
?????????{
??????????System.out.println(car[i].cost);
?????????}
?????????
?????????
?????????}
?????????
????????else
????????{
????????}
?}
}
1 回答

怳然如夢
TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超2個贊
這個應(yīng)該和數(shù)組的擴(kuò)容有關(guān),如果客戶輸入的車數(shù)量為50,依次選擇(數(shù)組的初始大小為6)車型號后,數(shù)組會在選擇4或5個后擴(kuò)容,然后繼續(xù)選擇車型,達(dá)到臨界值再次擴(kuò)容。所以最好數(shù)組的長度應(yīng)該大于50,具體多少可以debug 查看。注意數(shù)組賦值有擴(kuò)容,不會報空指針,但是for循環(huán)會從0循環(huán)到數(shù)組擴(kuò)容后的長度-1,自然會報空指針
添加回答
舉報
0/150
提交
取消