主题:  求最大数的代码为什么错?

sywh

职务:普通成员
等级:1
金币:0.0
发贴:66
#12002/3/10 12:11:38
我想编的是找最大数的过程,代码如下:
a = new Array(23, 234, 2, 435, 245, 23, 45, 2, 45, 67, 687, 56);
function max (a) {
    var a;
    var max1 = a.pop();
    for (var i = a.length; i<=0; ) {
        if (max1            max1 = a[i];
        }
        i--;
    }
    return max1;
}
trace (max (a))
应该输出的是687呀,它为什么输出56?



turbine

职务:普通成员
等级:1
金币:0.0
发贴:10
#22002/3/10 12:24:02
i>=0
还有var a 没有用



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
#32002/3/10 14:58:55
a = new Array(23, 234, 2, 435, 245, 23, 45, 2, 45, 67, 687, 56);
function max (a) {
var max1 = a.pop();
for (var i = a.length ; i>=0; i--) {
if (max1 max1 = a[i];
}
}
return max1;
}
trace (max (a))


//your judgement is wrong


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

sywh

职务:普通成员
等级:1
金币:0.0
发贴:66
#42002/3/10 16:56:59
谢谢金山羊,可是我觉得咱俩写得都差不多呀,找了半天也找不出来到底哪儿出了毛病,能不能请金山羊说清楚些。



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
#52002/3/10 17:32:45
for (var i = a.length ; i>=0; i--)


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

东方楚楚

职务:普通成员
等级:1
金币:0.0
发贴:44
#62002/3/10 21:39:15
i--不应该出现在循环体内,而应放于判断体内,作为条件判断的修正。



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
#72002/3/11 8:12:34
wrong
you tried?
It will be a infinite loop!
find it problem!


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#82002/3/11 21:05:21
sywh在上个帖子中说
引用:
应该输出的是687呀,它为什么输出56?


i的值在不在for()中并不重要,你把它放在循环体最后,和放在for()中是一样的。

由于画蛇添足地加了一句:
var a;
使得变量a取代了原来的array object, 所以a.length当然就为0了,这样,循环只执行了一次,因而你总是得到数组最后一个数