zoukankan      html  css  js  c++  java
  • 关于Java的i++和++i的区别

    之前对于 i++ 和 ++i 的理解就是:

    int i=1,a=0;
    1、i++ 先运算在赋值,例如 a=i++,先运算a=i,后运算i=i+1,所以结果是a==1
    2、++i 先赋值在运算,例如 a=++i,先运算i=i+1,后运算a=i,所以结果是a==2

    直到今天遇到下面类似这道题:

    public class Test3 {
        public static void main(String[] args) {    
            int y=0;    
            int i =0;
            y=++y;
            y=++y;
    y=++y; System.out.println(
    "y="+y); i=i++; i=i++;      i=i++; System.out.println("i="+i); } }

    结果:

    y=3;
    i=0;

    解释:

    /*
    i++,是先赋值,后加一,++i是先加一后赋值,三个y=++y,是y在内存自增一,然后进寄存器,最后赋值的时候i赋值就是1,第二个就是2,第三个就是3!
    而三个i=i++, 是赋值之后再自增1,i=0这个值先进寄存器,然后i在内存自增1,最后赋值的时候寄存器出来的0值会冲掉1值成为最终结果,所以无论多少个结果都会是0。
    */
  • 相关阅读:
    最大子列和
    喷水装置
    某种排序
    三个水杯
    奇偶数分离
    ASCII码排序(未完)
    1002
    if语句
    6.7
    A+B问题 涉及EOF
  • 原文地址:https://www.cnblogs.com/linyuhong/p/10540091.html
Copyright © 2011-2022 走看看