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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Test{
public static void main(String[] args){
int j = 0;
for(int i = 0; i < 10; i ++){
j = j++;
}
System.out.print(j);
}

}

点评

循环中的变量只能在循环中生效。  发表于 2015-3-21 23:37

20 个回复

倒序浏览
正常情况下不会用j=j++来达到j自增的效果,这样没有达到把j++的值赋值给j  答案:0
回复 使用道具 举报
这是8吧

回复 使用道具 举报
答案是0吧,j++值会变,但是j++赋给j,虽然++也会运算,但是赋值的时候赋的还是原来的j值,初始化j为0,不管循环多少次,结果还是0
回复 使用道具 举报
0,每次加完又改回去了
回复 使用道具 举报
答案是0
回复 使用道具 举报

public class Test{
public static void main(String[] args){
int j = 0;
for(int i = 0; i < 10; i ++){
j = ++j;
}
System.out.print(j);
}

}

改成这样后结果为10
回复 使用道具 举报
一抹浓茶 发表于 2015-3-20 22:35
答案是0吧,j++值会变,但是j++赋给j,虽然++也会运算,但是赋值的时候赋的还是原来的j值,初始化j为0,不 ...

j=j++; 先把0赋值给了j,然后j++,j变成1。再继续这样下去,j一直增加啊,为什么结果还是0呢?求详细解释,谢谢!
回复 使用道具 举报
One_M 中级黑马 2015-3-21 23:18:08
9#
j=j++ 只是 J先把0给了j  然后自加1 这是J 记录的值还是0 ,把 “J=J++ ”  换成“ j+=1” 这样就OK 了 ~!!
回复 使用道具 举报
顶了  慢慢看
回复 使用道具 举报
这个是0,毫无疑问当++后并未赋值给j
回复 使用道具 举报
先算=  再++
回复 使用道具 举报
0,循环也是一个代码块,当代码块执行完后,局部变量就会被回收了,j++的确做了自增的事,但是由于j=j++,是先赋值,再自增,塔自增的效果是空的,只自增并没有赋值成功就被回收器自动回收了,一直循环10次,所以还是这样的结果
回复 使用道具 举报
如果是j=++j,那么就是先自增后赋值,结果为10
回复 使用道具 举报
结果就是0
回复 使用道具 举报
结果是0 就算j++在赋值之后自增了 在给j赋值完成之后会回到i++的步骤,所以结果是0
回复 使用道具 举报
j=j++这个指令并没有给j赋值的功能i,毕老师视频讲过,现学现卖:lol
回复 使用道具 举报
我觉得应该是8吧
回复 使用道具 举报
我也认为0是ok的
回复 使用道具 举报
一道题引发的血案,好多答案啊,哈哈。讨论共同进步啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马