Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Правильно ли написаны два условия if где число больше числа? (https://javascript.ru/forum/misc/75208-pravilno-li-napisany-dva-usloviya-if-gde-chislo-bolshe-chisla.html)

Artur_Hopf 13.09.2018 14:23

Правильно ли написаны два условия if где число больше числа?
 
Добрый день. Допустим есть два условия которые сравнивают цифры 3 и 6 :
<div id="number"></div>
<br>
<div id="setting"></div>
<script type="text/javascript">
var i = 0;
var setting1 = 3;
var setting2 = 6;
function test (){
      i++;
      document.getElementById('setting').innerHTML = i;
      
      if(i >= setting1){
             document.getElementById('number').innerHTML = setting1;
      }

      if(i >= setting2){
             document.getElementById('number').innerHTML = setting2;
      }

      setTimeout(function() {
            test ();	
      }, 1000);
}
test();

</script>


В данном примере сначала сравнивается число больше 3, потом идет 2ое условие где число больше 6.
В том время как i >= 6 оба условие верны, потому что i так же больше 3.
То что я написал выше верно? или нужно переписать первое условие, относительно второго, когда оно больше шести?

p.s. на практике setting1, setting2 и тд. это неизвестные изначально переменные.

Я это вообще к чему, есть другая функция которая пересчитывает блок number, и нельзя чтобы там хоть на долю секунды появлялось число из первого условия в данном случае 3, если i >=6.

j0hnik 13.09.2018 15:08

Два раза менять innerHTML точно не нужно
if(i >= setting1 && i < setting2) //первое условие

j0hnik 13.09.2018 15:23

if(i >= setting2){
	document.getElementById('number').innerHTML = setting2;
}
else if(i >= setting1){
	document.getElementById('number').innerHTML = setting1;
}


а лучше вообще вот так

когда выполнится первое условие, второе вообще не будет проверяться

Artur_Hopf 13.09.2018 16:35

j0hnik,
Спасибо большое :thanks:


Часовой пояс GMT +3, время: 18:21.