PDA

Просмотр полной версии : Проблема с циклом if


lina4444
29.05.2017, 17:02
Вот код. Проблема в том что videl7 и videl8 в любом случае видимы.
on(release){if ((r7!=97.560976) || (r7!=97.56098) || (r7!=97.561) || (r7!=97.56) || (r7!=97.6) || (r7!=98))

{videl7._visible=100;}

else{videl7._visible=0;}
if ((r8!=90.909091) || (r8!=90.90909) || (r8!=90.9091) || (r8!=90.909) || (r8!=90.91) || (r8!=90.9) || (r8!=91))

{videl8._visible=100;}

else{videl8._visible=0;}}
А с целыми числами все прекрасно работает, где только одно условие.:(

FlashRus
29.05.2017, 18:49
1. _visible надо давать Boolean, а не Number
2. Ваше условие можно простить до:

videl7._visible = (r7 != 97.560976) || (r7 != 97.56098) || (r7 != 97.561) || (r7 != 97.56) || (r7 != 97.6) || (r7 != 98)
videl8._visible = (r8!=90.909091) || (r8!=90.90909) || (r8!=90.9091) || (r8!=90.909) || (r8!=90.91) || (r8!=90.9) || (r8!=91)


3. У вас очень странное логическое выражение.
- Допустим r7 = 5
r7 неравно 97.560976? Да, дальше можно не ходить.
- Допустим r7 = 97.560976
r7 неравно 97.560976? Равно, идём дальше;
r7 неравно 97.56098? Да, дальше уже не идём.
Ваше логическое выражение никогда не даст false.

ALeXVoz
29.05.2017, 21:57
Странные значения, откуда они берутся? Нельзя ли округлять и сравнивать?
videl7._visible = (Math.round(r7) != 98)