黑马程序员技术交流社区
标题:
编译和运行下面代码后显示的结果是( )。
[打印本页]
作者:
郭炜
时间:
2012-3-14 11:43
标题:
编译和运行下面代码后显示的结果是( )。
编译和运行下面代码后显示的结果是( )。
public class Inc{
public static void main(String argv[]){
Inc inc = new Inc();
int i =0;
inc.fermin(i);
i = i++;
System.out.println(i);
}
void fermin(int i){
i++;
}
}
A、编译报错误
B、2
C、1
D、0
作者:
冯林
时间:
2012-3-14 11:51
D、0
{:soso_e112:}
作者:
djx900
时间:
2012-3-14 11:56
为什么是0啊
作者:
于紫洋
时间:
2012-3-14 13:06
我想说这位童鞋,没必要这么着急把技术分弄满,视频还是要看完的,日志还是要写够的
作者:
吴璞玉
时间:
2012-3-14 13:37
int i =0; //声明一个变量i=0
inc.fermin(i);//将i的值作为参数传递给fermin方法,但是i的值本身并没有改变
i = i++;//这时i的值依旧是0,这句话是将i自增,但是它是先调用i的值,然后自增
作者:
程洪
时间:
2012-3-14 13:47
http://bbs.itheima.com/forum.php?mod=attachment&aid=MTA2NXxhZWRiY2E0ZjkyZDcwNzY0ZmVmZjViNTRhNDQxZTEzOXwxNzYzODYxODQ2&request=yes&_f=.jpg
未命名.jpg
(30.2 KB, 下载次数: 136)
下载附件
2012-3-14 13:47 上传
作者:
泮和顺
时间:
2012-3-14 14:30
我选了=1.....错在了那个++ 晕死
第一个是传形参方法所以改变不了值
第二个那个有点绕 看例子
int i =0;
int x= i++;
System.out.println(i);//1
System.out.println(x);//0
(i=i)++感觉是赋值完了就结束了 ?
但是i=(i++) 也是0...所以i=i++是无效操作 i还是i...
作者:
于紫洋
时间:
2012-3-14 14:42
原来是先赋值后自增啊,而且赋值和 i 在一条语句,所以 i 值根本没变,
果然大家解释以后好理解多了
如果只有一句 i++;输出就是1了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2