首页 > 试题广场 >

设 x = 2 ,则表达式 ( x + + ) * 3 的值

[填空题]
x = 2 ,则表达式 ( x + + ) * 3 的值是1
//程序

public static void main(String [] args)
   {
	    int x=2; 
	    int b=(x++)*3;
	    System.out.println(b);
   }

//字节码
public static main([Ljava/lang/String;)V
   L0
    LINENUMBER 7 L0
    ICONST_2
    ISTORE 1
   L1
    LINENUMBER 8 L1
    ILOAD 1
    IINC 1 1
    ICONST_3
    IMUL
    ISTORE 2
   L2
    LINENUMBER 9 L2
    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
    ILOAD 2
    INVOKEVIRTUAL java/io/PrintStream.println (I)V
   L3
    LINENUMBER 10 L3
    RETURN
   L4
    LOCALVARIABLE args [Ljava/lang/String; L0 L4 0
    LOCALVARIABLE x I L1 L4 1
    LOCALVARIABLE b I L2 L4 2
    MAXSTACK = 2
    MAXLOCALS = 3
直接上程序和上字节码

发表于 2017-06-08 19:48:30 回复(0)

x++是先提取值再加一,所以(x++)为2,而x的值在运行之后为3.

发表于 2017-05-15 15:28:59 回复(2)
6
发表于 2020-10-27 15:30:37 回复(0)
我的个神啊我竟然2*3下意识成8了
发表于 2017-07-12 13:06:46 回复(0)
为什么不是2*3+1=7呢,后自增不在一回合吗?
发表于 2017-06-30 10:05:49 回复(0)
x++的时候其实是int temp = 3;把x的值存在了临时变量里,整个运算结束后再赋值回来 x = temp;
发表于 2017-05-23 01:09:22 回复(0)
加括号也没用,WTF
发表于 2017-05-21 21:01:05 回复(1)
x++直到下次遇见x才会+1 所以是2*3=6
发表于 2017-05-15 14:02:48 回复(0)