在switch case中的if语句中不是语句错误

q5lcpyga  于 2021-07-09  发布在  Java
关注(0)|答案(4)|浏览(396)

我的问题出现在if语句中—如果变量“hours”大于10,我希望将额外的hours乘以2.00,并将结果加上9.95,但在编译时收到错误,我不明白原因。非常感谢您的帮助。

String choice;

    double hours;

    Scanner input = new  Scanner(System.in);

    System.out.print("Enter which package you are using A, B or C? ");
    choice = input.nextLine();
    choice = choice.toUpperCase();

    System.out.print("Enter the amount of  hours used: ");
    hours = input.nextDouble();

    switch ( choice )
    {
        case "A":
            if ( hours > 10 ){
                (( hours - 10) * 2 ) + 9.95;    << ERROR: Not a statement!
                }
            else
                System.out.println("Total: $9.95");
            break;

为便于参考,已将其答复和编辑为:

case "A":
            if ( hours > 10 ){
                total = (( hours - 10) * 2 ) + 9.95;    // Initialised to total
                System.out.println("Total: $" + total);
            }
            else
                System.out.println("Total: $9.95");
            break;
bq8i3lrv

bq8i3lrv1#

您没有设置此表达式值 (( hours - 10) * 2 ) + 9.95; 任何变量。将该值设置为任何变量,如下所示:

double total = (( hours - 10) * 2 ) + 9.95;
0x6upsns

0x6upsns2#

您需要指定从该行生成的结果值,如下所示:

double value = (( hours - 10) * 2 ) + 9.95;

了解java中的有效语句

e1xvtsh3

e1xvtsh33#

您必须将结果分配给hours变量,如下所示:

hours = (your expression here);
wfypjpf4

wfypjpf44#

该行不是java语句,根据oracle文档,该语句应该是一个完整的执行单元
声明
语句大致相当于自然语言中的句子。语句构成完整的执行单元。通过用分号(;)终止表达式,可以将以下类型的表达式生成语句。
赋值表达式
任何使用++或--
你可以编写方法调用
对象创建表达式

相关问题