-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
113 lines (98 loc) · 3.06 KB
/
Copy pathscript.js
File metadata and controls
113 lines (98 loc) · 3.06 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
let a = '';
let b = '';
let previos_b = '';
let sign = '';
let result = '';
let finish = false;
const digit = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ','];
const action = ['+', '-', '×', '/', '%'];
// * Отримання інпута
const out = document.querySelector('.calc-screen p');
// * Функції
function clearAll() {
a = '';
b = '';
sign = '';
result = '';
finish = false;
out.textContent = '0';
}
// * Головна функція
document.querySelector('.ac').onclick = clearAll;
document.querySelector('.buttons').onclick = (event) => {
// * нажата не кнопка
if (!event.target.classList.contains('btn')) return;
// * нажата кнопка clearAll
if (event.target.classList.contains('ac')) return;
out.textContent = '';
// * Получаю нажату кнопку
const key = event.target.textContent;
// * Нажата кнопка 0-9 або ,
if (digit.includes(key)) {
if (b === '' && sign === '') {
a += key;
console.log(a)
out.textContent = a;
}
else if (a != '' && sign != '' && result != '') {
// Переносимо результат в `a` і очищаємо `b`, щоб почати нову операцію
a = result;
b = ''; // Очищення другої змінної
result = ''; // Скидання результату
b += key; // Продовжуємо введення нового числа для другої змінної
out.textContent = b;
console.log(a, sign, b);
}
else if (a != "" && sign != '') {
b += key;
console.log(a, sign, b)
out.textContent = b;
}
}
// * Якщо нажато клавішу + - * /
if (action.includes(key)) {
sign = key;
out.textContent = sign;
console.log(a,sign)
return;
}
if (key === '=') {
if (b === '') {
b = a;
result = b;
}
switch (sign) {
case "+":
a = (+a) + (+b);
result = a;
break;
case "-":
a = a - b;
result = a;
break;
case "×":
a = a * b;
result = a;
break;
case "/":
if (b === '0') {
out.textContent = 'Не ділити на 0';
a = '';
b = '';
sign = '';
result = '';
return;
}
a = a / b;
result = a;
break;
case '%':
a = (a / 100) * b;
result = a;
break
}
finish = true;
out.textContent = result;
console.table(a, sign, b, '=', );
}
}