Java - 错误:找不到符号 - 开关/大小写

问题描述 投票:-1回答:1
public static void main(String[] args) {

    System.out.println("Bitte geben Sie einen Betrag und den Buchstaben der gewunschten Wahrung ein.");

    try {
        Scanner input = new Scanner(System.in);

        double betrag = input.nextInt();
        String wahrung = input.next();     
        double result = 0;

        switch(wahrung.charAt(0)) {
            case d:
                result = betrag * 1.18;
                System.out.println(result);
                break;
            case p:
                result = betrag * 0.88;
                System.out.println(result);
                break;
            case f:
                result = betrag * 0.88;
                System.out.println(result);
                break;
        }
    } catch (Exception e) {
        System.out.println("Bitte geben Sie eine Zahl ein.");
    }
}

当我尝试编译它时,它说:

Rechner.java:18: error: cannot find symbol
                case d:
                     ^
  symbol:   variable d
  location: class Rechner
Rechner.java:22: error: cannot find symbol
                case p:
                     ^
  symbol:   variable p
  location: class Rechner
Rechner.java:26: error: cannot find symbol
                case f:
                     ^
  symbol:   variable f
  location: class Rechner
java compilation switch-statement case
1个回答
2
投票

你使用char切换,所以每个case也应该是一个char值。

尝试

switch(wahrung.charAt(0)) {
            case 'd':
                result = betrag * 1.18;
                System.out.println(result);
                break;
            case 'p':
                result = betrag * 0.88;
                System.out.println(result);
                break;
            case 'f':
                result = betrag * 0.88;
                System.out.println(result);
                break;
        }
© www.soinside.com 2019 - 2024. All rights reserved.