2

私はプロジェクトを微調整しようとしている初心者プログラマーです。どこから始めればよいか分からないので、コードは含めませんでした。基本的に、さまざまな航空券クラスの入力をキャプチャしています。例: ファーストクラスはタイプ 1、ビジネスはタイプ 2、エコノミーはタイプ 3。次に、入力が if else ステートメントを介して実行され、クラスに応じて各チケットのコストが決定されます。価格が計算され、割引率で計算する別のメソッドに渡された後、出力ウィンドウにクラス タイプを表示したいと考えています。

さらに明確にするために、(name + "あなたのクラス タイプは: " + classType + "割引価格は: " + discountPrice + "あなたの最終価格は:" + finalPrice).....プラスすべてのフォーマット優雅。「1」「2」または「3」だけでなく、classTypeに実際の単語を表示したいと思います。少なくとも、入力をキャプチャして価格を割り当ててから計算することができました。これを行った後、数値型ではなく文字列値を返すことができればいいのにと思います。助けてくれた人たちに感謝します。私は初心者であり、配列やそれより複雑なことを学ぶ機会がなかったことを覚えておいてください。

4

2 に答える 2

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);
于 2012-11-08T04:17:10.033 に答える
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 チュートリアルから始めるのがよいでしょう。

于 2012-11-08T04:22:53.117 に答える