定义变量的问题

chenchengamao 2009-02-02 10:12:22
我的代码如下:
public class MyJava{
public static void main(String[] args){
for(int i=0;i<20;i++){
int j=10;
}
}
}

问:这里的int j=10,这条语句执行了几次,不是说变量定义在同一个作用域内不能定义两次吗?但为什么编译和运行时都能通过?
...全文
151 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
huhk 2009-02-02
  • 打赏
  • 举报
回复
一楼正解,主要是j的作用域问题。
yaoxin880122 2009-02-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zk20052009 的回复:]
20次
每一次循环结束后j就没有了
就是说你第一次循环结束
第二次开始时还没有j这个变量
这不是重复定义
[/Quote]
就这是这样的
cxc3980 2009-02-02
  • 打赏
  • 举报
回复
支持楼上的
veilme 2009-02-02
  • 打赏
  • 举报
回复
楼上几位说的很清楚了

我建议你研究一下变量的作用域.
caironghuicxz 2009-02-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zk20052009 的回复:]
int j=10 这句话执行了20次
每一次循环结束后 j 就没有了
就是说你第一次循环结束
第二次开始时还没有 j 这个变量
这不是重复定义
[/Quote]
zk20052009 2009-02-02
  • 打赏
  • 举报
回复
int j=10 这句话执行了20次
每一次循环结束后 j 就没有了
就是说你第一次循环结束
第二次开始时还没有 j 这个变量
这不是重复定义
zk20052009 2009-02-02
  • 打赏
  • 举报
回复
20次
每一次循环结束后j就没有了
就是说你第一次循环结束
第二次开始时还没有j这个变量
这不是重复定义
oklinsong 2009-02-02
  • 打赏
  • 举报
回复
你这就定义了一次啊,若是再加一个int j = 10;才是两次呢!j的作用域是for循环内部!
heidian 2009-02-02
  • 打赏
  • 举报
回复
顶 20
ouyangxiaokang6 2009-02-02
  • 打赏
  • 举报
回复
20
lpx1347155 2009-02-02
  • 打赏
  • 举报
回复
运行了 0到19 一共20次。 J只在FOR的范围内运行 只定义了一次 谢谢
simple_star 2009-02-02
  • 打赏
  • 举报
回复
int j=10; 执行了20次,大括号的作用相当于开启了一个新的作用域,每次进入大括号这个作用域便产生,离开时便结束,for循环的大括号也是如此。虽然这个j被定义了20次,但每次都不是同一个j ,正所谓一个人不可能两次踏进同一条河流。
qindequan 2009-02-02
  • 打赏
  • 举报
回复
en ,j的作用域是for内部。下次循环J就消失了

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧