Почему отображается error при делении на любое число кроме нуля? Javascript
let Btns = document.querySelector(".buttons");
let Ac = document.querySelector(".ac");
let Play = document.querySelector(".num");
let numeral = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "."];
let operation = ["+", "-", "*", "/"];
let OneNum = "";
let TwoNum = "";
let OperationBtn = "";
let finish = false;
function clearAll() {
OneNum = "";
TwoNum = "";
OperationBtn = "";
finish = false;
Play.textContent = "0";
}
Ac.addEventListener("click", clearAll);
Btns.addEventListener("click", function (e) {
let key = event.target.textContent;
if (numeral.includes(key)) {
if (TwoNum == "" && OperationBtn == "") {
OneNum += key;
Play.textContent = OneNum;
} else if (OneNum !== "" && TwoNum !== "" && finish) {
TwoNum = key;
Play.textContent = TwoNum;
finish = false;
} else {
TwoNum += key;
Play.textContent = TwoNum;
}
}
if (operation.includes(key)) {
if (OneNum !== "") {
OperationBtn = key;
Play.textContent = OperationBtn;
}
}
if (key == "=") {
if (OperationBtn == "+") {
OneNum = +OneNum + +TwoNum;
}
if (OperationBtn == "-") {
OneNum = OneNum - TwoNum;
}
if (OperationBtn == "*") {
OneNum = OneNum * TwoNum;
}
if (OperationBtn == "/") {
OneNum = OneNum / TwoNum;
}
if (OneNum / 0) {
OneNum = "Error";
}
Play.textContent = OneNum;
finish = true;
}
})
.content {
display: grid;
width: 250px;
height: 350px;
justify-content: center;
background-color: black;
border-radius: 10px;
}
.buttons {
display: grid;
grid-template-columns: 170px 40px;
}
.numeral {
display: grid;
grid-template-columns: 40px 40px 40px;
grid-template-rows: 40px 40px 40px 40px 40px;
grid-gap: 10px;
}
.operation {
display: grid;
grid-template-columns: 40px;
grid-template-rows: 40px 40px 40px 40px;
grid-row-gap: 10px;
}
.btn {
background-color: #333;
border-radius: 100%;
color: white;
}
.display {
color: white;
font-size: 35px;
}
.num {
margin: 10px 10px 10px 10px;
text-align: end;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="content">
<div class="display">
<p class="num">0</p>
</div>
<div class="buttons">
<div class="numeral">
<button class="btn one">1</button>
<button class="btn two">2</button>
<button class="btn three">3</button>
<button class="btn four">4</button>
<button class="btn five">5</button>
<button class="btn six">6</button>
<button class="btn seven">7</button>
<button class="btn eight">8</button>
<button class="btn nine">9</button>
<button class="btn zero">0</button>
<button class="btn eq">=</button>
<button class="btn ac">ac</button>
<button class="btn dot">.</button>
</div>
<div class="operation">
<button class="btn multiply">*</button>
<button class="btn devide">/</button>
<button class="btn plus">+</button>
<button class="btn minus">-</button>
</div>
</div>
</div>
<script src="main.js" type="text/javascript"></script>
</body>
</html>
Ведь Error должен отображаться только при делении на 0
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Условие if (OneNum / 0) { выполняется всегда, при любых выполненных других if'ах. И как следствие всегда будет отрабатывать и выдавать error.
Причём почему error должен быть - не ясно..... ..я понимаю, когда заданное число является нулём и на него пытаются делить, но когда тут проверяется что заданное число делится на ноль - странно. Эта проверка вообще сама по себе не имеет смысла