2015-08-21 3 views
0

Я хочу, чтобы скрипт продолжал запрашивать у пользователя допустимый ввод, который составляет от 0 до 100, но не может заставить его работать. Я более смущен, чем когда я начал работать над этим скриптом прошлой ночью. Это моя домашняя работа, и учитель попросил нас использовать оператор if, поэтому я не пытался использовать цикл while, но, возможно, должен.Если утверждение не повторяется при выполнении условия?

Вот код.

<!doctype html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Grade</title> 
 
    <script type="text/javascript"> 
 
    var grade = Number(prompt("What did you score: ", "Your Score Here!")); 
 

 
    if (grade < 0 || grade > 100) { 
 
     grade = Number(prompt("Please enter a valid score", "Your Score Here!")); 
 
    } else if (grade >= 0 && grade < 60) { 
 
     grade = "F"; 
 
    } else if (grade >= 60 && grade < 70) { 
 
     grade = "D"; 
 
    } else if (grade >= 70 && grade < 80) { 
 
     grade = "C"; 
 
    } else if (grade >= 80 && grade < 90) { 
 
     grade = "B"; 
 
    } else if (grade >= 90 && grade <= 100) { 
 
     grade = "A"; 
 
    } 
 

 
    document.write("<strong>Your grade is:</strong> " + grade); 
 
    </script> 
 
</head> 
 

 
<body> 
 

 
</body> 
 

 
</html>

+0

вам потребуется время цикла –

ответ

0

Да вы бы использовать while петлю. В этом случае у вас будет флаг, который проверяет, недействителен ли вход. Мы можем предположить, что он действителен в цикле, и когда недействительная проверка проходит через изменение его на недопустимое значение (false) и вызывает повторение цикла.

<!doctype html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Grade</title> 
 
    <script type="text/javascript"> 
 
    var grade = Number(prompt("What did you scrore: ", "Your Score Here!")); 
 
    var valid = false; 
 
    while(!valid) 
 
    { 
 
     valid = true; // assume it's valid 
 
     if (grade < 0 || grade > 100) { 
 
      grade = Number(prompt("Please enter a valid score", "Your Score Here!")); 
 
      valid = false; // It it happens to not be valid, change it to invalid 
 
     } else if (grade >= 0 && grade < 60) { 
 
      grade = "F"; 
 
     } else if (grade >= 60 && grade < 70) { 
 
      grade = "D"; 
 
     } else if (grade >= 70 && grade < 80) { 
 
      grade = "C"; 
 
     } else if (grade >= 80 && grade < 90) { 
 
      grade = "B"; 
 
     } else if (grade >= 90 && grade <= 100) { 
 
      grade = "A"; 
 
     } 
 
    } 
 
    document.write("<strong>Your grade is:</strong> " + grade); 
 
    </script> 
 
</head> 
 

 
<body> 
 

 
</body> 
 

 
</html>

+0

Wow вы ответили на мой вопрос в течение 6 минут, то есть сногсшибательное я бы стремиться быть столь же хорошим, как вы один день. Большое спасибо :) – SomeDude

+0

@SomeDude Добавление цикла while не имеет большого значения. Как только вы привыкнете к ним, это довольно просто: P Но спасибо :) * Примечание: * Вы можете принять ответы, щелкнув зеленую отметку слева. –

+0

Я попытался проголосовать за ваш ответ, но он сказал мне, что мне нужно иметь по крайней мере 15 очков репутации, я думаю, потому что я новичок, поэтому я не вижу ничего приветствия на всей странице. Примечание. Я нашел его, проверка будет серой, пока вы не нажмете ее, а затем она станет зеленой: P. – SomeDude

Смежные вопросы