-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
76 lines (64 loc) · 2.04 KB
/
Copy pathscript.js
File metadata and controls
76 lines (64 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Access the display DOM element
const displayLabel = document.getElementById('display-label');
// State Variables exactly mapping your Java attributes
let isOperatorClicked = false;
let whichOperatorClicked = "";
let oldValue = "";
let value = "";
function pressNumber(num) {
if (isOperatorClicked) {
displayLabel.innerText = num;
isOperatorClicked = false;
} else {
// Appends the number safely to the display string
displayLabel.innerText = displayLabel.innerText + num;
}
}
function setOperator(op) {
whichOperatorClicked = op;
isOperatorClicked = true;
oldValue = displayLabel.innerText;
}
function pressClear() {
displayLabel.innerText = "";
}
function pressSquare() {
value = displayLabel.innerText;
if(value !== "") {
let valueF = parseFloat(value);
let result = valueF * valueF;
displayLabel.innerText = result;
isOperatorClicked = true;
}
}
function pressCube() {
value = displayLabel.innerText;
if(value !== "") {
let valueF = parseFloat(value);
let result = valueF * valueF * valueF;
displayLabel.innerText = result;
isOperatorClicked = true;
}
}
function pressEqual() {
let newValue = displayLabel.innerText;
if (oldValue === "" || newValue === "") return;
let oldValueF = parseFloat(oldValue);
let newValueF = parseFloat(newValue);
let result = 0;
if (whichOperatorClicked === "add") {
result = oldValueF + newValueF;
} else if (whichOperatorClicked === "sub") {
result = oldValueF - newValueF;
} else if (whichOperatorClicked === "divi") {
result = oldValueF / newValueF;
} else if (whichOperatorClicked === "multi") {
result = oldValueF * newValueF;
} else if (whichOperatorClicked === "modulas") {
result = oldValueF % newValueF;
}
displayLabel.innerText = result;
// Reset state values
oldValue = "";
whichOperatorClicked = "";
}