2013-10-15 110 views
1

我不知道爲什麼我的else if的不工作!我其他如果不工作

var workSurvival:Number = 0; 
    var work:int = parseInt(work_txt.text); 

if(work <60> 0){ 
    workSurvival = work*12; 
     trace("work 1-" + workSurvival); 
}else if(work <120> 60){ 
    workSurvival = work*25; 
     trace("work 2-" + workSurvival); 
     trace(work); 
}else if(work == 120){ 
    bestScore -= 1; 
     trace("Good Score!"); 
}else if(work <200> 120){ 
    workSurvival = work*8; 
     trace("work 3-" + workSurvival); 
}else if(work <401> 200){ 
    workSurvival = work*4; 
     trace("work 4-" + workSurvival); 
} 

回答

5

if(work <60> 0)不是有效的IF語句。你需要重寫它是

if(work > 0 && work < 60) 

這同樣適用於所有其他在這裏的講話。

+0

*嘆息* ...這些小錯誤會是我的最後:( – user2878169

+0

題外話......但是,請停止提示小修改。如果你想幫助重新獲得獎勵,但沒有2k(或10k大型),請確保你也改進了帖子的其他部分。 – bjb568

+0

@howrad你可以在[meta](http://meta.stackoverflow.com)上詢問有人爲你做。 – bjb568

0

擴大在什麼howrad說:work <x> y相當於(work < x) > y,如此評價期間,它最終將成爲true > yfalse < ywork < x後評估),而不是表現出期望的範圍內的行爲..

現在,如何會寫它:

if(work < 60){ 
}else if(work < 120){ 
}else if(work == 120){ 
}else if(work < 200){ 
}else if(work < 401){ 
}else{ 
} 

也就是說,「沿英寸」:這部作品,因爲條件句,從具體到一般的整個範圍,第一個匹配的條件將終止序列支票的影響。

+0

有時候我希望它能讓你寫出像'if(0 howrad

+0

@howrad這樣的語句有時候會有一個「betweens」運算符......和一般的運算符重載。至少有一種語言允許這樣的語法,但我忘記了哪一種。 – user2864740

0

你的if語句是不正確的

改變他們的內部條件

if(work>0&&work<60)而不是if(work <60> 0)

else if(work>60&&work<120)而不是else if(work <120> 60)

else if(work>120&&work<200),而不是else if(work <200> 120)

else if(work <401> 200)

if(work>200&&work<401),而不是和你的代碼應該可以正常