1、问题背景
/** * 测试i++和i-- */ package com.you.model; /** * @author YouHaiDong * @date 2014-08-16 */ @SuppressWarnings("unused") public class AddReduce { static { int x = 10; } static int x; static int y; public static void addReduce() { y = x++ + ++x; } /** * @param args */ public static void main(String[] args) { x--; addReduce(); System.out.println(x + y++ + x); } }
2、问题分析
(1)这里的x是一个局部变量,只对这里有影响
static { int x = 10; }
(2)初始化时,x=0,y=0
static int x; static int y;
(3)由于初始化时x=0,执行x--,x就变为-1
x--;
(4)在调用“addReduce();”方法时,y=0,x=1
public static void addReduce() { y = x++ + ++x; }
(5)x + y++ + x = 1 + 0 + 1 = 2
System.out.println(x + y++ + x);
3、分析结果
由2分析出,该代码运行的结果为:2
i++和i--运算符优先级
时间: 2024-10-04 13:44:27