【问题标题】:multiplication compound assignment operator with more than two numbers具有两个以上数字的乘法复合赋值运算符
【发布时间】:2021-12-14 19:24:20
【问题描述】:

我现在正在做编码练习,遇到了一个我不知道该怎么做的任务,我在互联网上也找不到任何解决方案 =(

For which assignment does the abbreviation stand: a *= 3 / 2?

А) a = b + 3 / 2
B) a = a * 3 / 2
C) a + b - 3 / 2
D) a * b / 3 / 2
E) a = a * (3 / 2)

我知道 =* 和所有类似的复合运算符如何处理单个数字,但我不知道它如何处理像 3 / 2 这样的复杂表达式。IntelliJ IDEA 在尝试运行“a *= 3 / 2"

请帮帮我=)

【问题讨论】:

  • 其实很简单,先计算右操作数,然后使用复合表达式中的运算,在左操作数和右操作数的结果之间进行二元运算。在您的情况下,首先评估 3 / 2,然后将 a 乘以结果,所有内容都保存在 a
  • 那么答案是什么? A、B、C、D 还是 E? ps 感谢您的帮助 =)
  • a = a * (3 / 2)

标签: java operators


【解决方案1】:

任何编程语言中运算符赋值的语义如下:

左值 *= 右值 => 左值 = 左值 * (右值)

其中右值可以是任何表达式,因此: a *= 3 / 2 => a = a * (3/2) -> 答案是 E

在此处了解更多信息:https://www.cs.umd.edu/~clin/MoreJava/Intro/assign-compound.html

【讨论】:

    猜你喜欢
    • 2011-11-16
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多