Проблема в том, что вы вызываете rn()
несколько, и каждый раз он возвращает разные числа. Результат, который вы тестируете в if
, отличается от того, который вы показываете с помощью document.write()
, или того, который вы тестируете во втором if
.
Вам нужно сохранить число в переменной, поэтому вы можете протестировать и отобразить одно и то же число.
Также используйте else
, если вы хотите что-то сделать, когда предыдущий тест не прошел.
function rn() {
var a = Math.random()
return a
}
function writerandon() {
var x = 0
while (x < 100) {
var num = rn();
if (num < 0.8) {
document.getElementById("bd").innerHTML += (num + "<br>")
} else {
break;
}
x++
}
}
//
document.getElementById("11").innerHTML = writerandon()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>exp</title>
</head>
<body id="bd">
<h1 id="11"></h1>
</body>
<script src="exp.js"></script>
</html>