亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

--JAVA小白求教--請問下大家,總的功能實現了,但是假如:我在租車的時候輸入汽車序號不合要求時,怎么樣返回讓用戶重新輸入?感覺要使用好多層循環?

package?com.imooc;

import?java.util.Scanner;

public?class?Entry?{

	public?static?void?main(String[]?args)?{
		//?TODO?Auto-generated?method?stub
		System.out.println("--?您好!歡迎進入大大租車系統!");
		//提示客戶是否租車
		System.out.println("您是否需要租車?(1:是\t2:否)");
		Scanner?in?=?new?Scanner(System.in);
		int?ys?=?in.nextInt();

		int?days?=?1;
		int?num?=?1;
		int?sum?=?0;
		String?cname?=?"";
		int?cload?=?0;
		int?csize?=?0;
		
		if(ys==1){
			System.out.println("可租汽車的類型及價目");
			System.out.println("序號\t名稱\t租金\t\t容量");
			Automobile?truck?=?new?Truck();
			Automobile?van?=?new?Van();
			Automobile?coach?=?new?Coach();
			truck.showDetails();
			van.showDetails();
			coach.showDetails();
			
			//流程
			System.out.println("請輸入您要租車的數量:");
			num?=?in.nextInt();
			for(int?i=1;i<=num;i++){
				System.out.println("請輸入您要租的第"+i+"輛車的序號:");
				int?cid?=?in.nextInt();
				if(cid>0&&cid<6){
					switch(cid){
						case?1:
							sum+=truck.price[1];
							cload+=((Truck)truck).load[1];
							cname+=truck.name[1]+"、";
							break;
						case?2:
							sum+=truck.price[2];
							cload+=((Truck)truck).load[2];
							cname+=truck.name[2]+"、";
							break;
						case?3:
							sum+=van.price[3];
							cload+=((Van)van).load[3];
							csize+=((Van)van).size[3];
							cname+=van.name[3]+"、";
							break;
						case?4:
							sum+=coach.price[4];
							csize+=((Coach)coach).size[4];
							cname+=coach.name[4]+"、";
							break;
						case?5:
							sum+=coach.price[5];
							csize+=((Coach)coach).size[5];
							cname+=coach.name[5]+"、";
							break;
					}
				}
			}
			System.out.println("請輸入您要租幾天:");
			days?=?in.nextInt();
			System.out.println("-------以下為租車詳情-------");
			System.out.println("共租"+num+"輛車,分別有:"+cname);
			System.out.println("總載重"+cload+"T,總載人數"+csize+"人,共租"+days+"天,總金額為"+(sum*days)+"元。");
		}
	}

}
package?com.imooc;
//父類定義
public?abstract?class?Automobile?{
int[]?id?=?{0,1,2,3,4,5};
String[]?name?=?{"","松花江","依維柯","皮卡雪","奧迪A4","金龍"};
int[]?price?=?{0,400,1000,450,500,800};
public?abstract?void?showDetails();
}
package?com.imooc;
//貨車
public?class?Truck?extends?Automobile?implements?ILoad{
	
	public?void?showDetails()?{
		System.out.println(id[1]+"\t"+name[1]+"\t"+price[1]+"元/天\t\t載貨"+load[1]+"T");
		System.out.println(id[2]+"\t"+name[2]+"\t"+price[2]+"元/天\t\t載貨"+load[2]+"T");
	}
}
package?com.imooc;
//皮卡
public?class?Van?extends?Automobile?implements?ILoad,ISize{

	public?void?showDetails()?{
		System.out.println(id[3]+"\t"+name[3]+"\t"+price[3]+"元/天\t\t載貨"+load[3]+"T,載人"+size[3]);
	}
}
package?com.imooc;
//客車
public?class?Coach?extends?Automobile?implements?ISize{

	public?void?showDetails()?{
		System.out.println(id[4]+"\t"+name[4]+"\t"+price[4]+"元/天\t\t載人"+size[4]);
		System.out.println(id[5]+"\t"+name[5]+"\t"+price[5]+"元/天\t\t載人"+size[5]);
	}
}
package?com.imooc;
//載重
public?abstract?interface?ILoad?{
	int[]?load?=?{0,4,20,4};
}
package?com.imooc;
//載人數
public?abstract?interface?ISize?{
	int[]?size?=?{0,0,0,4,4,20};
}

正在回答

2 回答

可以通過while里面鑲嵌if else的方式配合break來確認

???????????//流程
????????????System.out.println("請輸入您要租車的數量:");
????????????num?=?in.nextInt();
????????????for(int?i=1;i<=num;i++){
????????????????System.out.println("請輸入您要租的第"+i+"輛車的序號:");
????????????????int?cid?=?in.nextInt();
????????????while(true){//更改處
????????????????if(cid>0&&cid<6){
????????????????????switch(cid){
????????????????????????case?1:
????????????????????????????sum+=truck.price[1];
????????????????????????????cload+=((Truck)truck).load[1];
????????????????????????????cname+=truck.name[1]+"、";
????????????????????????????break;
????????????????????????case?2:
????????????????????????????sum+=truck.price[2];
????????????????????????????cload+=((Truck)truck).load[2];
????????????????????????????cname+=truck.name[2]+"、";
????????????????????????????break;
????????????????????????case?3:
????????????????????????????sum+=van.price[3];
????????????????????????????cload+=((Van)van).load[3];
????????????????????????????csize+=((Van)van).size[3];
????????????????????????????cname+=van.name[3]+"、";
????????????????????????????break;
????????????????????????case?4:
????????????????????????????sum+=coach.price[4];
????????????????????????????csize+=((Coach)coach).size[4];
????????????????????????????cname+=coach.name[4]+"、";
????????????????????????????break;
????????????????????????case?5:
????????????????????????????sum+=coach.price[5];
????????????????????????????csize+=((Coach)coach).size[5];
????????????????????????????cname+=coach.name[5]+"、";
????????????????????????????break;
????????????????????}
????????????????????break;????????????????//更改處
????????????????}
????????????????else{???????????????????//更改處
????????????????????????System.out.println("大哥你輸入的數有誤誒!重新輸入吧!");???????????????//更改處
????????????????}???????????????????????????????//更改處
??????????????)???????????????????????//更改處
????????????}
0 回復 有任何疑惑可以回復我~
#1

imlk

其實我更愿意把這個判斷放在一個含參方法里面的
2016-03-05 回復 有任何疑惑可以回復我~

試試枚舉類型如何?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

--JAVA小白求教--請問下大家,總的功能實現了,但是假如:我在租車的時候輸入汽車序號不合要求時,怎么樣返回讓用戶重新輸入?感覺要使用好多層循環?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號