1. 首先是break、continue、return区别
-
break:
退出当前循环体
,执行循环体后面的语句。 -
continue:退出
本次循环
,回到循环体顶部,开始新的循环(继续执行循环体)。 -
return: 我一般不在for循环中使用return。函数中使用,直接
退出该函数
,执行该函数后面的语句。return之后的语句都不会被执行
。
2. 多层循环嵌套下使用break
因为break 只是退出当前循环体
,如果有多层for循环嵌套
,那么内层
的break之后,不会阻止外层循环的继续执行
。
// 外层for
for(.., .., ..){
// 内层for
for(.., .., ..){
break; // 这里的break只能退出内层的for,但是外层的for还会继续执行,不是我想要的
}
}
比较笨的方法是在外层加个判断条件,符合就退出外层循环。
$("#addPerson2").click(function(){
var ifAdd = true;
// 只要某一行的某一列为空,就不在继续向下循环判断剩下的项是否为空
for(var i = 0; i < vm.addPersonData.length; i++){
for(var j = 0; j < vm.indexCloumnsArr.length; j++){
if(vm.addPersonData[i]["p"+j]==''){
ifAdd = false;
// 退出内层循环
break;
}else{
ifAdd = true;
}
}
// 退出外层循环
if(!ifAdd){
break;
}
}
if(ifAdd){
var addObj = {};
addObj.id = vm.addPersonData.length;
for(var j = 0; j < vm.indexCloumnsArr.length; j++){
addObj["p"+j] = "";
}
vm.addPersonData.push(addObj);
$("#grid").data("kendoGrid").dataSource.read();
}else{
toaster.error({title: "提示" , body: "列表中含有未填项,请填写正确后添加新纪录。"});
}
});
3. 了解一下label语句,适用于break退出指定循环体
语法 和使用示例:
label(名称,相当于个标记,便于引用): statement(for语句循环体)
网友评论