我是一名初学者,希望调整一个项目。我没有包含代码,因为我不知道从哪里开始。基本上,我正在捕获不同机票类的输入。如:1级为1级,2为业务,3为经济。然后通过if else语句运行输入,以根据类确定每个票证的成本。在计算出价格并将其传递给另一种使用折扣率计算的方法之后,我想在输出窗口中显示类类型。
为了进一步说明,它会说类似,(名称+“您的班级类型是:”+ classType +“您的折扣价格是:”+ discountPrice +“您的finalPrice是:”+ finalPrice)..... plus所有的格式优雅。我希望classType显示实际的单词,而不仅仅是“1”“2”或“3”。我至少能够捕获输入并分配价格然后计算。我只是希望在执行此操作后我可以返回字符串值而不是数字类型。对于那些帮助的人,非常感谢你,请记住我是一个菜鸟,并且没有机会学习阵列以及比这更复杂的事情。
答案 0 :(得分:1)
由于这是一个简单的场景,你可以这样做:
int typeNum; // This is what holds 1, 2, 3 etc for the type of ticket
// 0 is used, so we'll just put a "NONE" as the string for it
String classType[] = {"NONE", "First Class", "Business", "Economy"};
...
System.out.println(name +
"Your class type is: " + classType[typeNum] +
"Your discount price is: " + discountPrice +
"Your finalPrice is:" + finalPrice);
“正确的”方式进行类型到字符串的映射(一般只使用类型)是使用enum
的:http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
(更新):根据要求,在没有数组的情况下执行此操作:
int typeNum; // Still the int that should be either 1, 2, or 3 for type of ticket
...
String classType;
if ( typeNum == 1 ) {
classType = "First Class";
} else if ( typeNum == 2 ) {
classType = "Business";
} else if ( typeNum == 3 ) {
classType = "Economy";
} else {
classType = "(Unrecognized Ticket Type)";
}
System.out.println(name +
"Your class type is: " + classType +
"Your discount price is: " + discountPrice +
"Your finalPrice is:" + finalPrice);
答案 1 :(得分:1)
您的班级类型似乎是enum
的合适人选。例如:
public enum ClassType {
FIRST_CLASS(1, "1st Class"),
BUSINESS(2, "Business"),
ECONOMY(3, "Economy");
private final int code;
private final String name;
private ClassType(int code, String name) {
this.code = code;
this.name = name;
}
public String getName() {
return name;
}
public static ClassType getByCode(int code) {
for (ClassType classType : ClassType.values()) {
if (classType.code == code) {
return classType;
}
}
throw new IllegalArgumentException();
}
}
如果您还没有了解枚举,那么一个好的起点就是Java Tutorials。