3 回答
![?](http://img1.sycdn.imooc.com/5c4aa098000126bb09600960-100-100.jpg)
TA贡献1797条经验 获得超4个赞
您可以使用switch语句来找出TicketType(儿童、成人、老年人)以及price单张票的票数:
double price;
switch(TicketType){
case 1:
price = ChildTicket;
break;
case 2:
price = AdultTicket;
break;
case 3:
price = SeniorTicket;
break;
default:
// use default value for price or throw an error
}
那么乘以price用TicketQuantity得到TotalCost:
double TotalCost = price * TicketQuantity;
注意: Java 命名约定说,变量应该总是以小写字母开头,而不是TotalCost喜欢totalCost等。
![?](http://img1.sycdn.imooc.com/545868190001d52602200220-100-100.jpg)
TA贡献1890条经验 获得超9个赞
您可以将变量作为值存储到双精度数组中,然后可以使用 TicketType 中的索引访问该值。像这样:
int TicketType = 0;
double ticketsValues[] = [18.00,32.00,32.50]; //The first position is ChildTicket, the 2nd AdultTicket and so..
int TicketQuantity = 0;
double TotalCost = ticketsValue[TicketType] * TicketQuantity;//Here you access to the value depending on the TicketType.
![?](http://img1.sycdn.imooc.com/545861f00001be3402200220-100-100.jpg)
TA贡献1817条经验 获得超14个赞
有不同的方法来解决这个问题。
我建议Enum为不同类型的票创建一个。
public enum TicketType {
SENIOR(32.50D),
ADULT(36.00D),
CHILD(18.00D);
private final double price;
TicketType(double price) {
this.price = price;
}
public double getPrice() {
return price;
}
public double getCalculatedPrice(int ticketAmount) {
return price * ticketAmount;
}
}
相反,您也可以尝试这种方式
int ticketType = 0; //change
double[] prices = {32.50D, 36.00D, 18.00D}; //Senior, Adult, Child
int ticketQuantity = 0; //change
int totalCost = prices[ticketType] * ticketQuantity;
您应该检查的一些补充ticketType是不大于或小于prices大小以避免ArrayIndexOutOfBoundsException. 您还应该检查数量是否不小于零。
添加回答
举报