условия if и elseif не работают в Javascript

#javascript #html #jquery #if-statement #conditional-statements

#javascript #HTML #jquery #if-оператор #условные операторы

Вопрос:

Я сделал тест IQ на JavaScript и дал условия для оценки, что для определенных диапазонов он отображает разные оценки IQ, но независимо от того, сколько правильных ответов он отображает только последнее условие. Я перепробовал так много вещей, но ничего не работает. Мне нужно отправить этот проект в ближайшее время. Я был бы очень признателен, если бы кто-нибудь мог помочь. Я прикрепил соответствующую часть кода ниже.

   
 

 function displayResult() 
{  
    var score = $('<p>',{id: 'question'});

    var correct = 0;
    for (var i = 0; i < selectOptions.length; i  ) 
    {

      if (selectOptions[i] === allQuestions[i].answer) {

        correct   ;

        console.log(correct)
      }
    }

    if (correct < 5){
      score.append("Your IQ Score lies in the range of 70-79 which is classified as Bordeline. 6.7% of the world's population falls in this range.<br> <img id='img1' src='BORDERLINE.png' height=90px width=500px/></br>");


    }else if (correct>=5 amp;amp; correct < 10){
      score.append("Your IQ Score lies in the range of 80-89 which is classified as low average. 16.1% of the world's population falls in this range. <br> <img id='img1' src='LOW AVERAGE.png' height=90px width=500px/></br> ");

    }else if (correct >= 10 amp;amp; correct < 20){

      score.append("Your IQ Score lies in the range of 90-109 which is
 
 classified as average. 50% of the world's population falls in this range. <br>

 <img id='img1' src='AVERAGE.png' height=90px width=500px/></br>");

    }else if (correct >= 20 amp;amp; correct <=25){

      score.append("Your IQ Score lies in the range of 110-119 which is 

        classified as high average. 16.1% of the world's population falls in 

         this range. <br> <img id='img1' src='HIGH AVERAGE.png' height=90px 
         width=500px/></br>"); 

    }else if(correct >= 25 amp;amp; correct <=30) {

       score.append("Your IQ Score lies in the range of 119-129 which is 

       classified as superior. 6.7% of the world's population falls in this
 
        range. 
       <br> <img id='img1' src='SUPERIOR.png' height=90px width=500px/> 

       </br>");  }
   
          
    return score;    
   
  } 
    <html>
    <head>
        <title>Make Quiz Website</title>
        <link rel="stylesheet" href="quiz.css">
        <link href="https://fonts.googleapis.com/css?family=Josefin Sans" rel="stylesheet">
    </head>
    <body>
        <div id="container">
            <h1>Quiz Website Using JavaScript</h1>
            <br/>
            <div id="quiz"></div>
              <p id="countdown">30:00</p></h1>
            <div class="button" id="next"><a href="#">Next</a></div>
            <div class="button" id="prev"><a href="#">Prev</a></div> 
        </div>
        

        <script src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
        <script src="quiz.js"></script>
    </body>
</html> 

Комментарии:

1. Кажется, что ваше первое условие correct == 0 amp;amp; correct < 5 должно использоваться || вместо amp;amp; because if correct == 0 , тогда оно уже <5 есть.

2. если (правильно = 0 amp;amp; правильно <= 5){ ?

3. да, я имел в виду правильное>= 0

Ответ №1:

(correct = 0 amp;amp; correct <= 5) будет установлено correct значение 0. Он не будет проверять его на 0. Даже если вы имеете в виду correct == 0 amp;amp; correct <= 5 , это избыточно, поскольку 0 всегда <= 5 .

Возможно, вы имели в виду correct >= 0 amp;amp; correct <= 5 ?

Ответ №2:

Эту часть следует изменить, чтобы она имела какой-либо смысл.

 if (correct = 0 amp;amp; correct <= 5){
          score.append("YOUR IQ SCORES LIES IN THE RANGE OF 70 and 79 WHICH IS CLASSIFIED AS BORDERLINE <img src='img9b.png'/>");
}
 

Что-то вроде этого.

 if (correct <= 5) {
    score.append("YOUR IQ SCORE IS IN THE RANGE OF 70 and 79 WHICH IS CLASSIFIED AS BORDERLINE <img src='img9b.png'/>");
} else if (correct <= 10) {
    score.append("YOUR IQ SCORE IS IN THE RANGE OF 80 and 119 WHICH IS CLASSIFIED AS AVERAGE <img src='img9b.png'/>");
} else {
    score.append("YOUR IQ SCORE IS ABOVE AVERAGE <img src='img9b.png'/>");
}