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的值只会根据条件执行而得到改变,代码健壮性会更好一些。
备注,留作复习。
(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的值只会根据条件执行而得到改变,代码健壮性会更好一些。
备注,留作复习。
相关文章推荐
- Django Step by Step中文版,推荐一下
- [Python]Django Step by Step 笔记(二)
- 学习下Django Step by Step (七)
- Django Step by Step 2010版(基于Django 1.1.1) 第五讲
- django step by step
- step by step django 入门
- [Python]Django Step by Step 笔记(三)
- Django Step by Step (二)(转自limodou)
- Django-step-by-step中的错误(python2.6+Django1.1+pyDev+eclipse)
- Django Step by Step (三)(转自limodou)
- 译Step-by-Step Guide on Configuring Django-Userena
- [学习] Apache + mod_python + Django Step by Step
- Django Step by Step
- Django Step by Step 1.0.2新版
- 开始学习 limodou 的 Django step by step 了
- [学习] Apache + mod_python + Django Step by Step
- 在Django 1.5 中 Django Step by Step (九)教程分页实现方法的修正
- 开始学习 limodou 的 Django step by step 了
- [Python]Django Step by Step 笔记(一)
- Step By Step设置Django