今天遇到了一个让我看着一脸懵的的问题,代码如下:
public class Test {
public static void main(String args[]) {
int i = -5;
i = ++(i++);
System.out.println(i);
}
}
当时我看见这个 “++(i++)” 一脸懵逼,心想还有这种写法,真的我第一眼看过去,越看越别扭,当时第一反应肯定是这写法有问题,但仔细想想可能没那么简单,说不定真有这种写法,只是我从来没遇到过,这里面肯定有陷阱。
然后我就选错了,正确答案是:编译报错。所以有时候吧第一眼感觉很重要(以后再看到这种题直接选报错就完了,开玩笑开玩笑的啊,还是要先分析分析的)
这是为什么呢,因为++() 括号里面必须是一个变量,而 i ++ 是一个字面量。
至于变量我想学过java的人都应该知道吧,你要是不知道的话就有点过分了啊小老弟,我怀疑你不是学java的,你是来砸场子的。
那什么是字面量呢,在java中通俗的说:int i = 1;把整数1赋值给int型变量i,整数1就是java字面量。