今天在偶然阅读一份某企业的笔试题的时候看到这样一道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之前的重复命名不被允许的原因。
原谅我如此愚钝,才知道这么回事....
下述程序代码中有语法错误的行是( )。
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之前的重复命名不被允许的原因。
原谅我如此愚钝,才知道这么回事....