您的位置:首页 > 编程语言 > Go语言

Django Step by Step

2008-04-14 22:08 387 查看
平时在写循环语句时,总是习惯性地把变量的自增都放在了for(表达式1;表达式2;表达式3)的"表达式3"语句执行,今天在调试一段源代码的时候发现,这个习惯不经意间会导致代码的健壮性受到影响,如下:

(1)平时习惯性的写法:

 

 

for(int i=0,j=0;i<currentNames.length;i++,j++) {

Name name = currentNames[i];

if(!name.isMarkedForDeleting()) {

newNames[j] = name;

}

}

这样书写时,因为变量j在每一次的循环中都会自增,而不是根据if条件是否得以执行而改变值!因此存在一个隐患,有可能导致j变量值超出了newNames的范围,从而导致IndexOutOfBoundsException异常;而如果谨慎一点写成如下的格式,就避免了不必要的错误。

(2)正确写法:

 

for(int i=0,j=0;i<currentNames.length;i++) {

Name name = currentNames[i];

if(!name.isMarkedForDeleting()) {

newNames[j++] = name;

}

}

j的值只会根据条件执行而得到改变,代码健壮性会更好一些。

备注,留作复习。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: