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

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

代碼如下,請教大佬以下幾個問題,幫幫孩子吧快改瘋了

首先,Car是父類,truck,pickuptruck和coach都沒啥東西,除了定義沒寫啥東西,主要問題出現在入口這,寫下來了但是不知道怎么優化。

一。如何判斷用戶的輸入符合要求,如果不符合要求可以返回重新輸入那種。try catch不太好使,只能檢驗出錯誤,回不去。然后已經用了if else,現在思維陷入循環出不來了。我猜應該用while,但是真是不知道怎么在里面用。

二。對于輸出結果怎么進行判斷,因為如果我想要租兩輛相同的車,他會打印出“可以載人的車輛有:馬自達 馬自達”這樣的。單寫都會,好多東西,什么數組加在一起就迷茫了。

三。如何將程序返回啊,就是代碼運行到哪里,退回去。暫時沒在腦子里構建出這么一個思想,是不是要理解為,加一個大loop或者條件。感謝感謝。

以下是代碼:

package com.car;

import java.util.Scanner;

public class Initial extends Car{


public static void main(String[] args) {

Scanner input = new Scanner(System.in);

//“利用子類創建新類型,并合并成數組”

Car[] carlist = {new Coach(1, "奧迪A4", 500, 4),new Coach(2, "馬自達6", 400, 4),new PickupTruck(3, "皮卡雪6", 450, 4, 2),new Coach(4, "金龍", 800, 20),new Truck(5, "松花江", 400, 4),new Truck(6, "依維柯", 1000, 20)};

System.out.println("歡迎使用答答租車系統:");

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

int ab = input.nextInt();

//how to check the invalid input?

if(ab == 1) {

//String format = "%-8s%-10s%-8s%-6s\n";

System.out.println("序號" + "\t" + "汽車名稱" + "\t" + "租金" + "\t" + "\t" + "容量");

for(int q=0;q<carlist.length;q++) {

carlist[q].print();

}

System.out.println("請輸入您要租車的數量");

int num = input.nextInt();

int sum=0;

int sumh=0;

int sumc=0;

int[] ID = new int[num];

for(int i=0;i<num;i++) {

System.out.println("請輸入您要租的第" + (i+1) + "輛車的序號");

int id = input.nextInt();

System.out.println("請選擇要租車的天數");

int day = input.nextInt();

sum+=(carlist[id-1].price)*day;

sumh+=carlist[id-1].humanCapacity;

sumc+=carlist[id-1].capacity;

ID[i]=id;

}

System.out.println("您的賬單為");

System.out.println("可載人的車輛有:");

for(int j=0;j<num;j++) {

if(carlist[ID[j]-1].humanCapacity!=0) {

System.out.println(carlist[ID[j]].name);

}else {

System.out.println("您沒有選擇載人的車輛");

}

}

System.out.println("您總共可以載" + sumh + "人");

System.out.println("可載貨的車輛有:");

for(int k=0;k<num;k++) {

if(carlist[ID[k]-1].capacity!=0) {

System.out.println(carlist[ID[k]].name);

}else {

System.out.println("您沒有選擇載貨的車輛");

}

}

System.out.println("您總共可以載" + sumc + "噸");

System.out.println("您的總費用為" + sum + "塊錢");

System.out.println("請根據指示付款");

System.out.println("謝謝您的使用,歡迎下次光臨");

}else {

System.out.println("感謝您使用租車系統,歡迎下次光臨");

System.exit(0);

}

//how about if the user want to rent other cars?

}

}


正在回答

3 回答

我是應為受到你代碼部分啟迪,現在回報你。你可以使用while(true)這種循環來返回上一步,當輸入你特定指令時進行下步循環。即你先判斷用戶輸入是否對,錯就continue,用戶輸入你所設定的特定字符串以后返回上一步。

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

int rentOrNot=2;

while ((rentOrNot!=0) &&(rentOrNot !=1)) {

rentOrNot=input.nextInt();

if (rentOrNot==0){

System.out.println("感謝使用,再見");

}else if (rentOrNot!=1) {

System.out.println("輸入有誤,請重新輸入");

}else if (rentOrNot==1) {

System.out.println("您可租車的 類型及其價目表:");

}

}

第一個問題 while怎么用,我是這么寫的,供參考

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

list裝汽車,選相同的汽車list里邊加一個,用do-while 里邊多寫幾個if作為每一步的操作,if里的return寫while里邊的條件(就是希望跳轉到那個操作步驟)

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

舉報

0/150
提交
取消

代碼如下,請教大佬以下幾個問題,幫幫孩子吧快改瘋了

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

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

幫助反饋 APP下載

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

公眾號

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