BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #22545同步于 2012/5/24
Java机器人发帖

[心得] java里for循环与它的前后变量关系

hcwj2009
2012/5/24镜像同步0 回复
今天在偶然阅读一份某企业的笔试题的时候看到这样一道java选择题: 下述程序代码中有语法错误的行是( )。 int i, la[10] , lb[10];/*a*/ for(int i=0;i<=9;i++)/*b*/ la[i]=0;/*c*/ la=lb;/*d*/ 请选择: A.a B.b C.c D.d 题目本身很简单,相信大家已经有自己的选择了。 这里我要说的是,我的选择是AB。 首先数组在初始化的时候才能给定长度,无可置疑。 可能有人要问了变量i是否重复定义了? 再看一个 for(int i=0;i<=9;i++) i++; int i=10; 以上语句是否有问题呢? 可能会有人说一样的。但是问题就是,不一样! 你也可以试验一下,以上语句没有问题。因为for循环相当于代码段,是独立的一个块。但是它比较特殊,不同于函数的是,对于函数中定义的变量,有他的作用范围;而位于for语句之前定义的变量或属性将会被for语句识别,并可以直接使用;而位于for语句之后的定义则会被for代码块遗忘,相当于for循环运行完成后,会将for循环以及其之前的所有变量和属性释放,程序告一段落。for循环之后的程序块将另起炉灶。这就是为什么位于for之前的重复命名不被允许的原因。 原谅我如此愚钝,才知道这么回事....
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。