一个简单的问题 counter = counter++;改为counter = ++counter; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 counter = counter++;我觉得执行了以上语句等同于counter = counter;counter = counter + 1;但为什么counter还是等于1 执迷不悟!!counter=counter++;相当于int temp=counter;counter=counter+1;counter=temp; 你怎么说的意思是counter++并没有起到+1的效果我还是有疑问那这和counter就没什么区别了 counter++是加了1,不过是为了下次远算作准备的,也就是说先给=号前的counter赋了值=号后的counter才加了1; 那为什么 counter = counter++; g.drawString ( Integer.toString ( counter ) , 100 , 100 );输出的值为1不是2 counter++是在寄存器中运行的,执行完后就丢弃了内存中 寄存器counter = counter++先把寄存器中的counter-->内存中的(原先的)counter,然后寄存器中的counter++,然后寄存器中的counter没没被用到了——>丢弃 可能跟编译原理有关,据说在c/c++里就是1,不过我没试,:),但是这么些没有任何意义,最好也不要这么写,可以看看这个以前的贴子http://search.csdn.net/Expert/topic/181/181782.xml?temp=.8161127 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++是后加,可是遇到这个情况我却发生了疑问?到底是什么原因出现了怎么个问题!!!以上的回复都不能解释!!! 看一下这个是否可以解释http://www.zdnet.com.cn/developer/code/story/0,2000081534,39213850,00.htm tom2005(快乐着)给的答案应该是正确的哎,象这样的问题太不容易发现了 java小程序求帮助 求正式版的KlassMaster Jtree CellEditor 的编辑问题 ResultSet会保留两个sql的内容还是会冲掉第一条的内容 对mp3一些属性不太了解 对于用break跳转到某一地方,某一地方的字段该怎么声明 算法小试牛刀 看看这个MM,还会动噢。 一个关于double的问题,真是让我烦心 小妹求救,毕业设计编到一半编不下去啦,请高手赐教! FileInputStream(String name)如何读取以中文为文件名的文件? 怎么样将double数据转成String型,且String变量不会显视科学计数法?
我觉得执行了以上语句等同于
counter = counter;
counter = counter + 1;
但为什么counter还是等于1
counter=counter++;
相当于
int temp=counter;
counter=counter+1;
counter=temp;
counter = counter++;
g.drawString ( Integer.toString ( counter ) , 100 , 100 );输出的值为1不是2
counter = counter++先把寄存器中的counter-->内存中的(原先的)counter,然后寄存器中的counter++,
然后寄存器中的counter没没被用到了——>丢弃
http://search.csdn.net/Expert/topic/181/181782.xml?temp=.8161127
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++是后加,可是遇到这个情况我却发生了疑问?到底是什么原因出现了怎么个问题!!!以上的回复都不能解释!!!
http://www.zdnet.com.cn/developer/code/story/0,2000081534,39213850,00.htm