搞了一下js, 在二维数组中匹配一个给定的值, 但是自己忘了退出外层循环, 导致获取了错误的i和j, 哎, js伪代码如下:
var is_matched = false;
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
{
if(...)
{
is_matched = true;
break;
}
}
}
// 然后, 在这里i就异常了
当时用F12单步调试了一下, 立即发现了原因, 原来, 忘了退出外层循环, 改为:
var is_matched = false;
for(i = 0; i < m; i++)
{
if(is_matched)
{
break;
}
for(j = 0; j < n; j++)
{
if(...)
{
is_matched = true;
break;
}
}
}
// 这里i依然异常
改为如下就OK:
var is_matched = false;
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
{
if(...)
{
is_matched = true;
break;
}
}
if(is_matched)
{
break;
}
}
虽然简单, 但还是值得注意。