慕沐6092693
2016-10-30 19:42
为什么我把函数写成:
function noBlockHorizontal(row,col1,col2,board){
for(var i=col1+1;i<col2;i++)
if(board[row][i]==0)
return true;
return false;
}
就会出现第二列不能移动的bug,这段代码和原代码的意思不是一样的吗。
原代码:
function noBlockHorizontal( row , col1 , col2 , board ){
for( var i = col1 + 1 ; i < col2 ; i ++ )
if( board[row][i] != 0 )
return false;
return true;
}
源代码是只要有一个board[row][i]不等于0,函数就返回false,只有所有的board[row][i]都为0,函数才返回true。
而你写的代码意思完全不同,只要有一个board[row][i]等于0,函数就返回true,只有所有的board[row][i]都不等于0,才会返回false。
如果你和老师一样不喜欢用{}的话,记得调整好每句话的空格位置,不然逻辑会很混乱
慕课网2048私人订制
70013 学习 · 588 问题
相似问题