【发布时间】:2022-06-13 12:31:13
【问题描述】:
else if 语句无法正常工作...我尝试使用三个 = 而不是 1 = 符号,但这只会破坏代码...但是如果我喜欢将 += 更改为 "/=` 除法运算已应用..我的代码有问题吗..
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Calculator!</title>
<link rel="stylesheet" href="./calc.css">
</head>
<body>
<div class="calculator">
<section class="screen">
0
</section>
<section class="calc-row">
<button class="double calc-buttons">C</button>
<button class="calc-buttons">←</button>
<button class="calc-buttons">+</button>
</section>
<section class="calc-row">
<button class="calc-buttons">7</button>
<button class="calc-buttons">8</button>
<button class="calc-buttons">9</button>
<button class="calc-buttons">-</button>
</section>
<section class="calc-row">
<button class="calc-buttons">4</button>
<button class="calc-buttons">5</button>
<button class="calc-buttons">6</button>
<button class="calc-buttons">x</button>
</section>
<section class="calc-row">
<button class="calc-buttons">1</button>
<button class="calc-buttons">2</button>
<button class="calc-buttons">3</button>
<button class="calc-buttons">÷</button>
</section>
<section class="calc-row">
<button class="triple calc-buttons">0</button>
<button class="calc-buttons">=</button>
</section>
</div>
</body>
<script src="./calc.js"></script>
</html>
JavaScript
let buffer = "";
const screen = document.querySelector(`.screen`);
let runningOperator = null;
document.querySelector(".calculator").addEventListener("click", function(event){
buttonClick(event.target.innerText);
console.log(event.target.innerText);
});
function buttonClick(value) {
if (isNaN(parseInt(value))) {
symbolhandle(value);
} else {
numberhandle(value);
}
}
function numberhandle(value){
if (buffer === 0) {
buffer = value ;
} else {
buffer += value;
}
console.log("here");
renderOutput();
}
function renderOutput() {
screen.innerText = buffer;
}
function symbolhandle(value){
switch (value) {
case 'C':
buffer = 0;
runningTotal = 0 ;
break;
case '←':
if(buffer.length === 1){
buffer = 0;
} else {
buffer = buffer.substring(0,buffer.length - 1) ;
}break;
case '=':
if(runningOperator= null){
return;
}else{
doOperations(parseInt(buffer));
buffer = runningTotal;
console.log(runningOperator);
runningOperator = null;
runningTotal= 0 ;
break;
}
break;
default:
handleMath(value);
buffer = 0;
break;
} renderOutput();
}
let Intbuffer = parseInt(buffer);
function handleMath(value) {
let Intbuffer = parseInt(buffer);
if(runningTotal === 0) {
runningTotal = Intbuffer;
} else {
doOperations (Intbuffer); }
runningOperator = value ;
buffer = "0";
renderOutput();
}
// This function is where I think the problem is
function doOperations(value) {
if (runningOperator = "+"){
runningTotal += value ;
} else if (runningOperator = "-"){
runningTotal -= value ;
} else if (runningOperator = "x"){
runningTotal *= value ;
} else if(runningOperator = "÷"){
runningTotal /= value ;
}
}
【问题讨论】:
-
嗯,单人
=肯定是错的,不问任何问题。