日期:2014-05-16  浏览次数:20470 次

简单for循环,出现无限循环情况!!!!!!!!!!!!!

    listval=3250
                   a=10000;
   flags=false;//作为是否为空的参数,true为X,false为0
   for(i=1;i<=5;i++){
       nums=parseInt(listval/a);
   //alert(i);
if(i=1){
  if(nums=0){
                                              flags=true;
                                           }else{
                                              flags=false;
                                           }
}
if(flags){
    alert(i);
}else{
alert(flags);
}
   $(value+i).val(nums);
   listval=listval-nums*a;
   a = a/10
   }

在将钱转换成大写时,对第一个为零到之后不为零的之前的用“X”表示没有。flags为判断标志,默认为false。在测试时出现无限循环。我实在搞不懂在哪里出错了。非常郁闷啊!!!!
for循环 无限循环

------解决方案--------------------
if(i=1){
这里永远把 i 设置成1
根据你的业务逻辑 我觉得你希望
if(i == 1)


以后你写 逻辑表达式的时候 可以尝试把 常量写在左面
 if(1 == i)
if(0 == i)

------解决方案--------------------
引用:
if(i=1){
这里永远把 i 设置成1
根据你的业务逻辑 我觉得你希望
if(i == 1)


以后你写 逻辑表达式的时候 可以尝试把 常量写在左面
 if(1 == i)
if(0 == i)

以前也犯过这种错误啊,debug了半天,最后知道真相的我眼泪掉下来,这其实算是一个写代码的习惯吧,虽然有点不符合自然思维,不过这还是值得保留的。