java – 运算符优先级问题导致“错误:意外类型”

前端之家收集整理的这篇文章主要介绍了java – 运算符优先级问题导致“错误:意外类型”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于最近有很多运算符优先级问题,我开始使用一些代码并想出了这个:
int x = someNumber;
int y = --x++;

这给出了:

Error: unexpected type

required: variable
found: value

我试过这个是因为我有兴趣了解java如何处理postfix具有比前缀更高的运算符优先级这一事实.这似乎上面的陈述会导致矛盾,我猜这是由这个错误处理的.

我的问题是双重的:

>为什么这个错误?这究竟是什么意思?
>为什么postfix的优先级高于前缀?我确信这是有充分理由的,但我无法想出一个.也许它会修复这种未定义的行为,但它会以某种方式引起更多问题?

解决方法

错误的原因是x产生一个值,并且您不能将减量运算符应用于值,仅应用于变量.例如,如果x = 41,则x计算为41,而不是变量x,– (41)无意义.

至于为什么postfix的优先级高于前缀,我猜测它是为了避免在解析时与其他运算符产生歧义.例如,编译器可以报告x-x的语法错误,而不是将其解析为x – ( – x).

原文链接:https://www.f2er.com/java/122894.html

猜你在找的Java相关文章