俺菜鸟一个!
才自学接触到java!
向各位高手请教下以下内容:
——————————————————————————————————————————————
public class Testtry3 {
public static void main(String args[]) {
int i=1;
long resturn=0;
while (i<=100) {
i++;

resturn=resturn+i;
//i++;
}


        System.out.println(resturn);


}
}
——————————————————————————————————————————————
其中i++位置在resturn=resturn+i;
的上面时产生的值与位置在resturn=resturn+i;下时为什么会多出100呢?
俺想啦半天也没搞明白!——!
向各位请教来啦!谢谢!

解决方案 »

  1.   

    因为i++ => i = i + 1所以在上:resturn取i+1后的数值
    在下:resturn取i的数值
      

  2.   

    要求1~100的和的话,,直接用for循环就行了啊!
      

  3.   

    其实这要理解i++的真正含义是先使用后加一i取3
    j=i++
    j的值是3,i的值是4
    j=++i
    j的值是4,i的值是4
      

  4.   

    放在上面:从2 ++++..101    i=1-> resturn=1+1 ;i=100-> resturn=100+1
    放在下面:从1 ++++..100    i=1-> resturn=1   ;i=100-> resturn=100
      

  5.   

    哎呀!貌似写的有点问题, 应该写初值和末值,不该写resturn的。。应该能看明白吧。。
      

  6.   

    哈哈,这个错误不是很明显的嘛…………i++在下面的时候那个i 加到100的时候,result 中的i还是99,再来一个循环就加到100了,i++在上面的时候,循环条件当i=100的时候,继续执行然后i加到110,然后result继续加,所以应该多了101;你把while(i<=100)改为while(i<100)就行啦!!
      

  7.   

    谢谢各位!你们让我想到啦好多东西!在这里谢谢啦!
    我在各位的提醒下!突然想到!为什么不让她显示出执行的大概思路呢!!于是啦就有了一下内容!
    —————————————————————当i++在resturn上面时-----------------
    public class Testtry3 {
    public static void main(String args[]) {
    int i=1;
    long resturn=0;
    while (i<=5) {
    i++;
    int j=i;
    System.out.println("j="+j);
    System.out.println("in i="+i);
    resturn=resturn+i;
    System.out.println("in resturn="+resturn);
    //i++;
    }

    System.out.println("out i="+i);
            System.out.println("out resturn="+resturn);


    }
    }
    —————————————————————当i++在resturn下面时------------------
    public class Testtry4 {
    public static void main(String args[]) {
    int i=1;
    long resturn=0;
    while (i<=5) {
    int j=i;
    System.out.println("j="+j);
    System.out.println("in i="+i);
    resturn=resturn+i;
    i++; System.out.println("in resturn="+resturn);
    //i++;
    }

    System.out.println("out i="+i);
            System.out.println("out resturn="+resturn);


    }
    }————————————————————————————————————————————————
    原来在当i++在resturn上面时resturn=2+3+4+...+100+101=5150
    当i++在resturn下面时resturn=1+2+3+...+100=5050
    呵呵!再次谢谢大家!!