A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编译和运行下面代码后显示的结果是(    )。
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

8 个回复

倒序浏览
D、0
{:soso_e112:}
回复 使用道具 举报
为什么是0啊
回复 使用道具 举报
我想说这位童鞋,没必要这么着急把技术分弄满,视频还是要看完的,日志还是要写够的
回复 使用道具 举报
int i =0; //声明一个变量i=0
inc.fermin(i);//将i的值作为参数传递给fermin方法,但是i的值本身并没有改变
i = i++;//这时i的值依旧是0,这句话是将i自增,但是它是先调用i的值,然后自增
回复 使用道具 举报
http://bbs.itheima.com/forum.php?mod=attachment&aid=MTA2NXxmNjE0ZmNiZGMzYzAyZDdjNGZjODhiZWU3MGIwMjMzOHwxNzMzMDQ2NzY4&request=yes&_f=.jpg

未命名.jpg (30.2 KB, 下载次数: 117)

未命名.jpg
回复 使用道具 举报
我选了=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...
回复 使用道具 举报
原来是先赋值后自增啊,而且赋值和 i 在一条语句,所以 i 值根本没变,
果然大家解释以后好理解多了
如果只有一句 i++;输出就是1了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马