Skip to content

Commit 3d5821c

Browse files
authored
Merge pull request #1 from josueJURE/dividing-by-zero-2.0
Dividing by zero 2.0
2 parents 0c374aa + a767037 commit 3d5821c

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

index.js

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,32 +73,42 @@ btns.forEach((btn) => {
7373
canUserAddDot();
7474
}
7575

76-
// This is the = fuction
76+
7777
if (buttonValue === "=") {
7878
try {
7979
const replacedArray = data.map((item) => (item === "x" ? "*" : item === "÷" ? "/" : item));
80-
let result = eval(replacedArray .join(""));
81-
console.log(eval(replacedArray .join("")));
82-
displayResult(replacedArray, result);
83-
zeroDivedByZero(screen, result)
84-
divideByZero(screen, result);
85-
data = [];
86-
data.push(result)
80+
// Check if the expression involves 0/0
81+
if (hasZeroDividedByZero(replacedArray)) {
82+
screen.innerText = "Invalid format used. You cannot divide by zero";
83+
} else {
84+
let result = eval(replacedArray.join(""));
85+
console.log(result);
86+
displayResult(replacedArray, result);
87+
divideByZero(screen, result);
88+
data = [];
89+
data.push(result);
90+
}
8791
} catch (e) {
8892
screen.innerText = `${e.name} press AC`;
8993
}
9094
}
95+
9196

9297
function divideByZero(display, outcome) {
9398
outcome === Infinity
9499
? (display.innerText = "Math Error. Cannot divide by zero")
95100
: (display.innerText = outcome);
96101
}
97-
function zeroDivedByZero(display, outcome) {
98-
Number.isNaN(outcome)
99-
? (display.innerText = "0÷0 is an nvalid format press AC" )
100-
: (display.innerText = outcome)
102+
103+
function hasZeroDividedByZero(array) {
104+
for (let i = 0; i < array.length - 2; i++) {
105+
if (array[i] === "0" && array[i + 1] === "/" && array[i + 2] === "0") {
106+
return true;
107+
}
108+
}
109+
return false;
101110
}
111+
102112
function displayResult(array, outcome) {
103113
array = [];
104114
array.push(outcome);

0 commit comments

Comments
 (0)