java - 在 if 语句之后使用 switch 语句

标签 java if-statement switch-statement

我想在 if 语句之后使用 switch 语句,但我不能,而且我不知道问题是什么。

public class main {

    public static void main (String[] args) {

        String input; //To hold user's input.
        char selectPackage; //To hold Internet Package
        double hourUsage, totalCharges, addCharges; //other variables

        //Create a Scanner object for keyboard input.
        Scanner keyboard = new Scanner(System.in);

        //Prompt the user to select a Internet Package.
        System.out.print("Which package did you purchase? ( Enter the Package's letter)");
        input = keyboard.nextLine();
        selectPackage = input.charAt(0);

        System.out.print("Please select the amount of hours used.");
        input = keyboard.nextLine();
        hourUsage = Double.parseDouble(input);

        //Display pricing for selected package...
        switch (selectPackage)
        {
            case 'a':
            case 'A':
                if (hourUsage > 10)
                {
                    addCharges = hourUsage - 10;
                    totalCharges = (addCharges * 2.0) + 9.95;
                    System.out.println("You have used " + hourUsage + " hours and your total is $" + 
                    totalCharges + " per month. ");
                }
                else
                    System.out.println("Your total is $9.95 per month.");
                break;

            case 'b':
            case 'B':
                if (hourUsage > 20 )
                { 
                    addCharges = hourUsage - 20;
                    totalCharges = (addCharges * 1.0) + 13.95;
                    System.out.println("You have used " + hourUsage + " and your total is $" + totalCharges + " per month.");
                }    
                else
                    System.out.println("Your total is $13.95 per month.");
                break;

            case 'c':
            case 'C':
                System.out.println("Your total is $19.95 per month.");
                break;

            default:
                System.out.println("Invalid Choice. Choice A,B,C");
        }
    }
}

System.out.println("Your total is $19.95 per month.");

}
else
     System.out.println("Your total is $19.95 per month.");

}
}

现在我想使用 switch 语句告诉用户,如果他/她选择套餐“B”,他将节省 20 美元。

最佳答案

我查看了您的代码,并进行了大量的编辑和改进,我发现的主要问题是您在错误的地方使用了}。我相信这是因为你没有很好地组织你的代码;将来考虑组织您的代码,以便更容易发现错误,下面我已经更正了您的代码,并将最后几行放入注释中,因为我不确定为什么您将它们放在那里,如果有任何疑问,只要问我:

public class Test {
public static void main(String[] args) {
    char selectPackage; //To hold Internet Package
    double hourUsage, totalCharges, addCharges; //other variables
    //Create a Scanner object for keyboard input.
    Scanner keyboard = new Scanner(System.in);
    //Prompt the user to select a Internet Package.
    System.out.print("Which package did you purchase? ( Enter the Package's letter)");
    char input = keyboard.next().charAt(0);
    selectPackage = Character.toUpperCase(input);
    System.out.print("Please select the amount of hours used.");
    hourUsage = keyboard.nextDouble();
    //Display pricing for selected package...
    switch (selectPackage) {
        case 'A':
            if (hourUsage > 10) {
                addCharges = hourUsage - 10;
                totalCharges = (addCharges * 2.0) + 9.95;
                System.out.println("You have used " + hourUsage + " hours and your total is $" + totalCharges + " per month. "); 
            }
            else {
                System.out.println("Your total is $9.95 per month.");
            }
        break;
        case 'B':
            if (hourUsage > 20 ) { 
                addCharges = hourUsage - 20;
                totalCharges = (addCharges * 1.0) + 13.95;
                System.out.println("You have used " + hourUsage + " and your total is $" + totalCharges + " per month.");
            }
            else{ 
                System.out.println("Your total is $13.95 per month.");
            } 
        break;
        case 'C':
            System.out.println("Your total is $19.95 per month.");
        break;
        default:
            System.out.println("Invalid Choice. Choice A,B,C");
    }
    /**System.out.println("Your total is $19.95 per month.");
     System.out.println("Your total is $19.95 per month.");
     **/
}
}

关于java - 在 if 语句之后使用 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25961763/

相关文章:

java - 通过使用下面提到的以下命令来编译Java代码

javascript - 如果我使用两个 "if"语句而不是仅使用一个 "if/else"语句,为什么二进制搜索算法不起作用?

c++ - 在 C++ 中使用外部文件创建数组

java - 多个案例 - 基于值范围而不是 Java 中的单个值进行测试?

loops - 在React中使用for循环和switch case来动态渲染不同的组件

java - jfreechart - 删除图表中的空格

java - 泛型:上限通配符转换/转换错误

java - JSF 生成页面和实体,selectOneMenu

PHP & MySql 检查表是否为空

所有 if 语句都可以转换为等效的 switch 语句吗?