0

このコードを書きましたが、機能していないようです。と入力dすると、ドルの計算が行われますが、まだ実行されています (..何?)。

リストの部分、間違っている部分に + 検出 + が表示されますか?

String currency = sc.next();
        char detect = currency.charAt(0);
switch (detect){
    case 'D':
    case 'd':
        double dollar = (amount/18*10);
        System.out.println(amount + " Turkish Lira(s) --> " + dollar + " Dollar");

    case 'E':
    case 'e':
        double euro = (amount/23*10);
        System.out.println(amount + " --> " + euro + " Euro");

    case 'T':
    case 't':
        double lira = (amount);
        System.out.println(amount + " --> " + lira+ " Lira(s)");

        while (detect!='d'|| detect!='e' || detect!='t' || detect!='D'|| detect!='E' || detect!='T'){
            System.out.println("Can u See " + detect + " In The List ?\n" + menucur);
            currency = sc.next();
            detect = currency.charAt(0);
            } 
    }
4

3 に答える 3

4

breakswitch ステートメントの各ケースの最後に追加する必要があります。

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.htmlを参照してください。

于 2012-11-11T09:21:13.410 に答える
2

各ブロックbreakの各一連のステートメントの最後にa を追加します。例:case

switch (detect){
    case 'D':
    case 'd':
        double dollar = (amount/18*10);
        System.out.println(amount + " Turkish Lira(s) --> " + dollar + " Dollar");
        break; // <==== Add this

    case 'E':
    case 'e':
        double euro = (amount/23*10);
        System.out.println(amount + " --> " + euro + " Euro");
        break; // <==== Again here

...等々。これは、次のコードに進みたくないことをコードに伝えますcase

Java の優れた入門書を読むことをお勧めします。コメントの中で、MadProgrammer は に固有の 1 つのチュートリアルを指摘していましたがswitchここでは一歩下がって基本を少し確認します。

switchそのために、適切に記述されたステートメントの例を次に示します。

// Assume `n` is an integer
switch (n) {
    case 0:
    case 1:
        System.out.println("n is 0 or 1");
        break;

    case 2:
    case 3:
    case 4:
        System.out.println("n is 2, 3, or 4");
        break;

    case 17:
        System.out.println("n is 17");
        break;

    default:
        System.out.println("n has some value other than 0, 1, 2, 3, 4, or 17");
        break;
}
于 2012-11-11T09:28:14.950 に答える
1

beakOmar Jackmanがすでに指摘しているように、必要なキーワードがありません。さらに、無効な入力を処理するには('D'、'd'、'E'、'e'、'T'、't'以外の文字はキーワードを使用しますdefault):

switch(case)
    case 'D':
    case 'd': 
         double dollar = (amount/18*10);
         System.out.println(amount + " Turkish Lira(s) --> " + dollar + " Dollar");
         break;

    case 'E':
    case 'e':
         double euro = (amount/23*10);
         System.out.println(amount + " --> " + euro + " Euro")
         break;

    //.. rest of your code
    // finally:

    default: // <- handle invalid letter input
         System.out.println("Invalid input");
         break;
}
于 2012-11-11T09:33:11.260 に答える