一道关于i++的java基础题

/***
*输出结果是多少?
*/
publicclassInc{

publicstaticvoidmain(Stringargv[]){
Incinc=newInc();
inti=0;
inc.fermin(i);
i=i++;
System.out.println(i);
}
voidfermin(inti){
i++;
}
}

答案是0

/***
*输出结果是多少?
*/
publicclassInc{

publicstaticvoidmain(Stringargv[]){
Incinc=newInc();
inti=0;
inc.fermin(i);//传值,变量i本身值不变
i=i++;//分两步,首先i++,变量i的值变为1,但是表达式i++的值是i原来的值0;
//第二步,将表达式i++的值0赋给变量i,这时变量i的值还是为0。
System.out.println(i);//理所当然输出的值是0咯
}
voidfermin(inti){
i++;
}
}

如上面所讲,两个知识点

1 java中的方法都是值传递

2i=i++的值为0(原因见注释)

你可能感兴趣的:(java)