空山骊语
2016-05-10 14:54
此题中如果代码写成
function mynum(x,y){
if(x<y){
return y;}
else if(x=y){
return x;}
else{
return x;}
}
//定义函数
//函数体,判断两个整数比较的三种情况
req1=mynum(5,4);
req2=mynum(6,3);
结果是5 和 4 的较大值是:4
6 和 3 的较大值是:3。
但若改成
function mynum(x,y){
if(x>y){
return x;}
else if(x=y){
return x;}
else{
return y;}
}
//定义函数
//函数体,判断两个整数比较的三种情况
req1=mynum(5,4);
req2=mynum(6,3);
结果5 和 4 的较大值是:5
6 和 3 的较大值是:6。
出现这两种是为什么?或者在第一种写法里改为req1=mynum(4,5);
req2=mynum(3,6);返回值也正确。这是为什么?
第一种代码:
如果传入的x小于y,会执行第一个return语句,返回y;
如果传入的x大于等于y,则会执行下一个if语句,将y赋值给x(x=y是将y赋值给x),会返回被y赋值后的x(即y值)
第二种代码:
如果传入的x大于y,会执行第一个return语句,返回x;
如果传入的x小于等于y,则会执行下一个if语句,将y赋值给x(x=y是将y赋值给x),会返回被y赋值后的x(即y值)
第二种代码虽然能正确返回最大值,但是依然是不正确的写法。
你第一个应该是最小值 if(x<y){
return y;} y比x小 返回y
第一种写法里面 这地方不对if(x=y)改成if(x==y) 相等操作符是==
”=“是赋值
”==“是全等于
你代码写错了,你把else if(x=y)改成else if(x==y)就知道了。代码写错了就会出现千奇百怪的事情,x=y是赋值,不会象 x==y 一样产生对错。
function mynum(x,y){
if(x>y){
return x;}
else if(x=y){//你这里写错了,吧y赋值给了x;只要把=改成==就行了
return x;}
else{
return y;}
}
JavaScript进阶篇
468196 学习 · 21891 问题
相似问题