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

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

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

  1. String choice;
  2. double hours;
  3. Scanner input = new Scanner(System.in);
  4. System.out.print("Enter which package you are using A, B or C? ");
  5. choice = input.nextLine();
  6. choice = choice.toUpperCase();
  7. System.out.print("Enter the amount of hours used: ");
  8. hours = input.nextDouble();
  9. switch ( choice )
  10. {
  11. case "A":
  12. if ( hours > 10 ){
  13. (( hours - 10) * 2 ) + 9.95; << ERROR: Not a statement!
  14. }
  15. else
  16. System.out.println("Total: $9.95");
  17. break;

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

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

bq8i3lrv1#

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

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

0x6upsns2#

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

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

了解java中的有效语句

e1xvtsh3

e1xvtsh33#

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

  1. hours = (your expression here);
wfypjpf4

wfypjpf44#

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

相关问题