二级for循环的外层循环忘记退出引起的bug
搞了一下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;
}
} 虽然简单, 但还是值得注意。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: for循环语句的bug?
- 下一篇: C++的四种强制转换
