java里for循环与它的前后变量关系

来源:互联网 发布:老炮儿网络剧看不见了 编辑:程序博客网 时间:2024/05/17 10:39

今天在偶然阅读一份某企业的笔试题的时候看到这样一道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之前的重复命名不被允许的原因。


原谅我如此愚钝,才知道这么回事....



原创粉丝点击