【问题标题】:Invalid Assignment Operator java无效的赋值运算符 java
【发布时间】:2014-11-08 22:30:06
【问题描述】:

这是我的代码:

h[ht] * sth -= 3;   

“*”给我一个错误:

标记“*”的语法错误,无效的AssignmentOperator

我需要将 h[ht]*sth 的值减少 3

【问题讨论】:

  • 如果你想用指针做你在c做的事情,那么java don't support pointers
  • h[ht]*sth 的值是多少?怎么能减三?数组中有什么?你想做什么?
  • 这是h[ht] * sth 一个有效的变量名吗?
  • 告诉我们更多h[ht] * sth -= 3; 给一些详细的编码
  • 您期望 -= 将结果分配给什么? LHS 必须是分配结果的参考。正如所写,这对我或编译器来说毫无意义。

标签: java assignment-operator


【解决方案1】:

您的示例无效,因为“-=”实际上是一种合同形式:

int a = 1;
a -= 1;
// the above line is the same as:
a = a - 1

将计算分配给其他东西:

int a = (h[ht] * sth) - 3

【讨论】:

    【解决方案2】:

    您尝试的语法不正确。

    我想 h[ht]sth 是两个不同的变量,你想将它们的结果减少 3。

    基本上这是编译时错误,因此无法编译。对吧?

    为了实现这一点,您需要将其分成两个不同的语句,即

    int/long/float/double temp =  h[ht] * sth;
    temp-=3;
    

    或者你也可以像这样( h[ht] * sth )-3

    你将能够实现你想做的事情。

    请阅读here.,让我告诉你Java的编译器是使用这个语法实现的,因此如果任何语句不符合这些语法规则,就会导致语法错误。

    希望您的问题能够得到解决。 谢谢

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 2011-02-08
      • 2011-11-16
      • 2015-05-02
      • 2015-03-19
      • 2014-04-17
      • 2013-01-03
      • 2013-02-14
      • 2018-11-30
      相关资源
      最近更新 更多