• Java中的自增自减


    情况①:

    for (int i = 0; i < 100; i++) {
        j = 1 + j++;
    }
    System.out.println(j);  

    结果是 0 !! 这是由于在进行后自增/自减(j--  j++)操作的时候,先开辟一块新的内存空间来保存运算之间的 j 值,然后再进行++操作,最后将新的内存空间保存的值赋值给等式的左边。

    j = j++ 相当于:
    temp = j; // 开辟新的内存空间保存原来的 j 值
    j = j + 1; // 进行++操作
    j = temp; // 将新内存空间保存的值赋值给等式左边

    情况②:

    int j = 1;
    int x = j++ + (j+2);  // 在第三个+之前 j=1, 在第三个+之后 j=2  即 x = 1 + (2+2);
    System.out.println(x);  // 结果是 5 

    情况③:

    j = 1;
    j = ++j + j++;   // 相当于 j = 2 + j(此时j=2)++;
    System.out.println(j);  // 结果是 4 

    和情况①相同:

    j = 2 + j++ 相等于:
    temp = j;
    j = j + 1;
    j = 2 + temp;

    情况④:

    int j = 1;
    j = j++ + ++j + j++ + j++;  // j = 1 + 3 + 3 + j(此时j=4)++
    System.out.println(j);   //结果是11 
  • 相关阅读:
    202. Happy Number
    198. House Robber
    191. Number of 1 Bits
    190. Reverse Bits
    189. Rotate Array
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    [leetcode]Single Number II
    [leetcode]Single Number
    [leetcode]Clone Graph
  • 原文地址:https://www.cnblogs.com/DDiamondd/p/11523377.html
Copyright © 2020-2023  润新知