public class Welcome
{
public static void main(String[] args)
{
int i=3;
int count=(i++)+(i++)+(i++);
System.out.println(i);
System.out.println(count);
}
}
{
public static void main(String[] args)
{
int i=3;
int count=(i++)+(i++)+(i++);
System.out.println(i);
System.out.println(count);
}
}
解决方案 »
- Java写入中文到文件出现乱码,如何解决?
- 用this和super调用一个方法有什么区别
- 为什么struts里面得不到输入流?急
- System.in.read() 的问题
- 用jad反编译某些文件后,会有 JVM INSTR...类似的代码,这是什么?
- 快点救我!!!
- JBuilder9中用Weblogic7连接数据库,程序部分的lookup不能找到JNDI
- 在JTree上右击,弹出一个popup菜单,我怎么知道在那一个node上面右击的?
- 关于枚举类enum的问题
- 用户体验设计中那些针对「等待」的好设计
- 需要用java在一个指定的cmd窗口中输入一个字母,例如“y”,再回车,分管够
- 请教一个关于jtree鼠标右键的问题
6
12i++和++i
前者是算算出i的值然后再加1
后者是先+1然后再求i的值。这种算法是否正确?可是我怎么也想不通为什么结果是 6和12
请各位大虾给详细讲解一下。谢谢!!!!!!!!!!!!!!!!!!
count = 3 + 4 + 5
++(--)i 先自加(减)后赋值class Test{
public static void main(String args[]){
int i=0;
int x=i++; //先赋值后自加(减)
System.out.println ("x="+x+" i="+i);
int y=++i; //先自加(减)后赋值
System.out.println ("y="+y+" i="+i);
}
}结果:
x=0 i=1
y=2 i=2
i=3,"i++"=3;
i=4,"i++"=4;
i=5,"i++"=5;
i=6,count=3+4+5=12;
result:
6
12
当i的值进行完第一个i++时,再作第二个i++时,i的值己经变为4,再作第三个i++时i的值己经变为5所以这句代码是这样count=3+4+5,所以count是12
而i作完最好一次i++时,值正好变为6
看看这个如何?
写出这种代码的人都自以为是高手。其实。
软件不是一个人做的。要团队。写的代码要别人懂。不是要考倒人。
其实代码意思很简单。
学过c 的都知道。
3+4+5=12
i加了三次,变6拉。
改成
int count=(++i)+(++i)+(++i);
那么i为自加3次 = 6
count=6+6+6=18
你可以改了试试 体会下就知道了
做第一个i++前i=3 做完后i=4
做第一个i++前i=4 做完后i=5
做第一个i++前i=5 做完后i=6
第一个(I++)后I就是4了,第二个(I++)后I就是5了,所以相当与3+4+5,第三个(I++)后I就是6了
......................难道不是从后面算起的吗??
做第二个i++前i=4 做完后i=5
做第三个i++前i=5 做完后i=6
int count=(i++)+(i++)+(i++);
改成
int count=(++i)+(++i)+(++i);
那么i为自加3次 = 6
count=6+6+6=18
你可以改了试试 体会下就知道了///////////////////////////////////////////
我看还是你好好体会体会吧
{
public static void main(String[] args)
{
int i=0;
int j=0;
int y;
System.out.println(i++);//先用后加
i=0;
y=(i++)+(j++);
System.out.println(y);
i=0;
j=0;
y=(++i)+(++j); //先加后用
System.out.println(y);
}
}//结果:
//0
//0
//2
楼主只要知道i++和++i区别就可以了,如果面试碰到这种题目,lz大可以转身离开,在这个公司肯定没前途。
不过楼猪好象以前没有编程基础啊,java是你学的第一门编程语言吧?
做第二个i++前i=4 做完后i=5
做第三个i++前i=5 做完后i=6