关闭

有关inspect/watch的一个疑问

544人阅读 评论(0) 收藏 举报

当代码中出现i++,然后我用inspect 监测或者watch到expression中后,就会发现i++被当作程序中的代码执行了;

也就是说i开始如果为0的话,则程序执行了多少次,i+1就执行了多少次,此时i值就变了!

eg:

package charpter06;

public class Testi {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
           int i1=0,i2=0,i3=0,i4=0,i5=0,i6=0,i7=0,i8=0,i9=0,i10=0,i11,i12=0;
           int k2,k5,k9,k10;
           for(int j=0;j<5;j++){
/* 
*    int i = 0;
i=i++;
这个效果如下:
int temp = i++;//this : temp = 0; i =1(that's:i+1);
i = temp;//this: i =0;
因此: i=i++; 相当于什么都没有做,在有的IDE里,它会告诉你这个代码是废代码!   */ 
            i1 =i1++;// * means:int temp= i1; i1=i1+1;i1=temp;
            k2 =i2++; //means: int k2 =i2;i2=i2+1;
            i3++;//means: int temp = i3; i3 = i3 +1;
            ++i4;//means:i4 = i4+1; int temp = i4;
            k5 =++i5;//means:i5=i5+1; int k5= i5
            i6--;//means:int temp=i6;i6=i6-1;
            --i7;//means:i7=i7-1;int temp =i7;
            i8=i8--;// * means:int temp=i8;i8=i8-1;i8=temp
            k9=i9--;//means:int k9=i9;i9=i9-1;
            k10=--i10;//means: i10=i10-1; int k10=i10;
           
            System.out.println(" j = "+j);
            System.out.println("  i1="+i1);
            System.out.println("     i3 ="+i3);
            System.out.println("       i4 ="+i4);
            System.out.println("         i2 ="+i2+"  k2="+k2);
            System.out.println("          i5 ="+i5+"  k5="+k5);
            System.out.println("           i6 ="+i6+"  i7="+i7);
            System.out.println("             i8 ="+i8);
            System.out.println("              i9 ="+i9+"  k9="+k9);
            System.out.println("                i10 ="+i10+"  k10="+k10);
           }
           
 }
 

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:154236次
    • 积分:2621
    • 等级:
    • 排名:第13982名
    • 原创:107篇
    • 转载:2篇
    • 译文:0篇
    • 评论:19条
    最新评论
    Ruby
    Word技巧
    自动测试工具