黑马程序员技术交流社区

标题: 对于++的见解 [打印本页]

作者: lnz_黑仔    时间: 2014-12-26 00:28
标题: 对于++的见解
class  TestB
{
        public static void main(String[] args)
        {       
                byte b = (byte) -130;
                System.out.println(b);
                int i1=2,i2=2,i3=2,i4=2,i5=2,i6=2,i7=2;
                int i=2;
                i1=(i1++)+3;//i1=5;解析:i1直接拿出来运算=2+3;(在右边还保留着i1=1+1,但是由于后面没有i1不接着运算,它结果也没出来;)
                i2=(i2++)+(++i2);//i2=6;++i2先算,i2=3后第一个i2=3;结果=3+3=6
                i3=(i3++)+(++i3)+(i3++);//i3=10;++i3先算=3;第一个i3=3;第一个里面还有i3=i3++,所以第二个i3++的i3为4,结果=3+3+4=10
                i4=(i4++)+(++i4)+(i4++)+(i4++);//i4=15;同上结果等于3+3+4+5=15;
                i5=(i5++)+(i5++);//i5=5;如上:第一个i5拿出来=2,后他本身还有个++运算i5=3所以第二个i5=3;结果为2+3+5;
                i6=(i6++)+(i6++)+(i6++);//i6=9同上结果=2+3+4=9
                i=i++;/*i=2;解析:i先提出来值2,直接赋值左边的i中了,右边虽然还有++但其已运算赋值结束;右边还含有个i=i++公式,但后面没有运用到该运算值也就没显示,不继                      续做运算;*/
                i7=(i7++)+(++i7)+(i7++)+(++i7);//16;   4+3+5+4=16//2+4+4+6=16
                System.out.println("i1="+i1);
                System.out.println("i2="+i2);
                System.out.println("i3="+i3);
                System.out.println("i4="+i4);
                System.out.println("i5="+i5);
                System.out.println("i6="+i6);
                System.out.println("i7="+i7);
                System.out.println("i="+i);
                System.out.println(~8);
                System.out.println(~-8);
                System.out.println(~-1);
                System.out.println(~-2);
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2