2013-10-15 1 views
1

Я понятия не имею, почему мои else if не работают !!!My else if's не работает

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

Off темы ... но, пожалуйста, прекратите предлагая незначительные изменения. Если вы хотите помочь с retagging, но не имеете 2k (или 10k для больших), убедитесь, что вы также улучшаете другие части сообщения. – bjb568

+0

@howrad Вы можете спросить [meta] (http://meta.stackoverflow.com), чтобы кто-то сделал это за вас. – bjb568

0

Расширение на то, что howrad сказал: work <x> y эквивалентно (work < x) > y, поэтому при оценке она будет в конечном итоге, как true > y или false < y (после того, как work < 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(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)

if(work>200&&work<401) вместо else if(work <401> 200)

и ваш код должен работать нормально