請(qǐng)教對(duì)于if語(yǔ)句的小改動(dòng)出現(xiàn)不同的結(jié)果,為什么?
此題中如果代碼寫成
function mynum(x,y){
if(x<y){
??? return y;}
else if(x=y){
??? return x;}
else{
??? return x;}
}
//定義函數(shù)
//函數(shù)體,判斷兩個(gè)整數(shù)比較的三種情況
req1=mynum(5,4);
req2=mynum(6,3);
結(jié)果是5 和 4 的較大值是:4
6 和 3 的較大值是:3。
但若改成
function mynum(x,y){
if(x>y){
??? return x;}
else if(x=y){
??? return x;}
else{
??? return y;}
}
//定義函數(shù)
//函數(shù)體,判斷兩個(gè)整數(shù)比較的三種情況
req1=mynum(5,4);
req2=mynum(6,3);
結(jié)果5 和 4 的較大值是:5
6 和 3 的較大值是:6。
出現(xiàn)這兩種是為什么?或者在第一種寫法里改為req1=mynum(4,5);
req2=mynum(3,6);返回值也正確。這是為什么?
2016-05-10
第一種代碼:
如果傳入的x小于y,會(huì)執(zhí)行第一個(gè)return語(yǔ)句,返回y;
如果傳入的x大于等于y,則會(huì)執(zhí)行下一個(gè)if語(yǔ)句,將y賦值給x(x=y是將y賦值給x),會(huì)返回被y賦值后的x(即y值)
第二種代碼:
如果傳入的x大于y,會(huì)執(zhí)行第一個(gè)return語(yǔ)句,返回x;
如果傳入的x小于等于y,則會(huì)執(zhí)行下一個(gè)if語(yǔ)句,將y賦值給x(x=y是將y賦值給x),會(huì)返回被y賦值后的x(即y值)
第二種代碼雖然能正確返回最大值,但是依然是不正確的寫法。
2016-05-17
你第一個(gè)應(yīng)該是最小值 ??if(x<y){
??? return y;} ? ?y比x小 ?返回y
2016-05-10
第一種寫法里面 這地方不對(duì)if(x=y)改成if(x==y) ?相等操作符是==
2016-05-10
”=“是賦值 ?
”==“是全等于
2016-05-10
你代碼寫錯(cuò)了,你把else if(x=y)改成else if(x==y)就知道了。代碼寫錯(cuò)了就會(huì)出現(xiàn)千奇百怪的事情,x=y是賦值,不會(huì)象 x==y 一樣產(chǎn)生對(duì)錯(cuò)。
2016-05-10
function mynum(x,y){
if(x>y){
??? return x;}
else if(x=y){//你這里寫錯(cuò)了,吧y賦值給了x;只要把=改成==就行了
??? return x;}
else{
??? return y;}
}