带有两个连续运算符的Java数学

时间:2011-11-18 16:03:51

标签: java android operators

我最近在调试一个结果比预期大得多的问题。我打算写的是:

y += height + rowHeight * 2;

我写的是

y += height * + rowHeight * 2;

我没有立即看到错误,因为显然* +是Java中的有效运算符,或者至少是Android java。我以前从未听说过这件事,我也不知道这意味着什么。

作为一项实验,我发现这个广义形式是一个正则表达式[*/%][+-]*

它看起来像某种形式的波兰表示法,但我并不知道Java支持这种表示法。

那么......我在哪里可以找到有关此运算符的文档,以及它究竟是什么意思?

4 个答案:

答案 0 :(得分:3)

它正在使用一元加运算符 - 所以就像这样:

y += height * (+rowHeight) * 2;

举一个看起来根本不奇怪但是使用一元减去而不是一元加号的例子:

y += height * -rowHeight * 2;

希望这更有意义:)

答案 1 :(得分:0)

+只是一个积极的信号(一元运算符)。你可以重写它:

y += height * (+ rowHeight) * 2;

在java中编写它也是有效的:

int x = +-+-+-+- 5;

答案 2 :(得分:0)

+-都是一元运算符,否则您无法编写如下内容:

int n = -1;
int x = +42;

答案 3 :(得分:0)

编译器将表达式视为运算符 y += height * (+ rowHeight) * 2;