counter = counter++;改为
counter = ++counter;

解决方案 »

  1.   

    counter = counter++;
    我觉得执行了以上语句等同于
    counter = counter;
    counter = counter + 1;
    但为什么counter还是等于1
      

  2.   

    执迷不悟!!
    counter=counter++;
    相当于
    int temp=counter;
    counter=counter+1;
    counter=temp;
      

  3.   

    你怎么说的意思是counter++并没有起到+1的效果我还是有疑问那这和counter就没什么区别了
      

  4.   

    counter++是加了1,不过是为了下次远算作准备的,也就是说先给=号前的counter赋了值=号后的counter才加了1;
      

  5.   

    那为什么
                counter = counter++;
                g.drawString ( Integer.toString ( counter ) , 100 , 100 );输出的值为1不是2
      

  6.   

    counter++是在寄存器中运行的,执行完后就丢弃了内存中     寄存器
    counter = counter++先把寄存器中的counter-->内存中的(原先的)counter,然后寄存器中的counter++,
    然后寄存器中的counter没没被用到了——>丢弃
      

  7.   

    可能跟编译原理有关,据说在c/c++里就是1,不过我没试,:),但是这么些没有任何意义,最好也不要这么写,可以看看这个以前的贴子
    http://search.csdn.net/Expert/topic/181/181782.xml?temp=.8161127
      

  8.   

    import java.applet.Applet;
    import java.awt.*;public class Applet1 extends Applet
       {
          int counter;      public void init ( )
             {
                counter = 1;
             }      public void paint ( Graphics g )
             {
                counter = counter++;
                g.drawString ( Integer.toString ( counter ) + counter , 100 , 100 );
             }
       }运行结果是:11import java.applet.Applet;
    import java.awt.*;public class Applet1 extends Applet
       {
          int counter;
          int haha;      public void init ( )
             {
                counter = 1;
                haha = 0;
             }      public void paint ( Graphics g )
             {
                haha = counter++;
                g.drawString ( Integer.toString ( counter ) + counter , 100 , 100 );
             }
       }运行结果是:22import java.applet.Applet;
    import java.awt.*;public class Applet1 extends Applet
       {
          int counter;
          int haha;      public void init ( )
             {
                counter = 1;
                haha = 0;
             }      public void paint ( Graphics g )
             {
                haha = counter++;
                g.drawString ( Integer.toString ( haha ) + counter , 100 , 100 );
             }
       }运行结果是:12
    请认真看这上面三个程序,问题就自然而来了。我并不是一个新手,这是我在实际编程中碰见的。我也知道++counter是先加,counter++是后加,可是遇到这个情况我却发生了疑问?到底是什么原因出现了怎么个问题!!!以上的回复都不能解释!!!
      

  9.   

    看一下这个是否可以解释
    http://www.zdnet.com.cn/developer/code/story/0,2000081534,39213850,00.htm
      

  10.   

    tom2005(快乐着)给的答案应该是正确的哎,象这样的问题太不容易发现了