Дано два числа x, y и знак арифметической операции (+, -*, /). Найти x+y, x-y, x*y, x/y, в зависимости от введенного знака. В случае ошибки в знаке или деления на 0 вывести сообщение об ошибке.
---------------------------------------------
Как проверить, что знак ввели неверно?
JavaScript
Как в JavaScript проверить правильность введенного символа?
const number = (msg) => {
let num;
do {
num = Number.parseFloat(prompt(msg));
} while (Number.isNaN(num));
return num;
};
const operator = (msg) => {
let opr, flag;
flag = false;
do {
if (flag) {
alert("Ошибка: неверный знак операции.")
}
opr = prompt(msg);
flag = true;
} while (!/\+|\-|\*|\//.test(opr) || opr.length > 1);
return opr;
};
const calc = () => {
let a, b, s, r;
do {
a = number("Введите первое число");
b = number("Введите второе число");
s = operator("Введите знак операции");
switch (s) {
case '+': r = a + b; break;
case '-': r = a - b; break;
case '*': r = a * b; break;
case '/': r = (b !== 0) ? a / b : "деление на ноль."; break;
}
alert(a + " " + s + " " + b + " = " + r);
} while (confirm("Продолжить?"));
};
calc();
let num;
do {
num = Number.parseFloat(prompt(msg));
} while (Number.isNaN(num));
return num;
};
const operator = (msg) => {
let opr, flag;
flag = false;
do {
if (flag) {
alert("Ошибка: неверный знак операции.")
}
opr = prompt(msg);
flag = true;
} while (!/\+|\-|\*|\//.test(opr) || opr.length > 1);
return opr;
};
const calc = () => {
let a, b, s, r;
do {
a = number("Введите первое число");
b = number("Введите второе число");
s = operator("Введите знак операции");
switch (s) {
case '+': r = a + b; break;
case '-': r = a - b; break;
case '*': r = a * b; break;
case '/': r = (b !== 0) ? a / b : "деление на ноль."; break;
}
alert(a + " " + s + " " + b + " = " + r);
} while (confirm("Продолжить?"));
};
calc();
ну так выстави условие, что если не соответствует любому из 4 знаков, то ошибка
или если имеется деление на 0, то тоже ошибка.
или если имеется деление на 0, то тоже ошибка.
вот еще простой вариант
var X1 = Number( prompt("Введите значение X=" , '' ) ) || 0 ;
var Y1 = Number( prompt("Введите значение Y=" , '' ) ) || 0 ;
var XY = prompt("Введите знак арифметической операции: +, -/, * " );
if( XY.search( RegExp( "[+-/*]" , 'g') ) == -1 ){ /* поиск по регулярке */
alert( "ошибка - арифмитический знак НЕ УКАЗАН" );
}
else{
XY = XY.trim()[0]; // удаление пробелов и берем только 1 символ
if( Y1 == 0 && XY == '/' ){
alert( X1+ XY +Y1 + " - делить на ноль нельзя" );
}
else{
var Z = eval( X1 + XY + Y1 );
alert( X1+ XY +Y1 +'=' + Z );
}
}
var X1 = Number( prompt("Введите значение X=" , '' ) ) || 0 ;
var Y1 = Number( prompt("Введите значение Y=" , '' ) ) || 0 ;
var XY = prompt("Введите знак арифметической операции: +, -/, * " );
if( XY.search( RegExp( "[+-/*]" , 'g') ) == -1 ){ /* поиск по регулярке */
alert( "ошибка - арифмитический знак НЕ УКАЗАН" );
}
else{
XY = XY.trim()[0]; // удаление пробелов и берем только 1 символ
if( Y1 == 0 && XY == '/' ){
alert( X1+ XY +Y1 + " - делить на ноль нельзя" );
}
else{
var Z = eval( X1 + XY + Y1 );
alert( X1+ XY +Y1 +'=' + Z );
}
}
че вы все здесь такие сложные? замени все if() {} на switch() {}, для чего столько мороки с if ???
Похожие вопросы
- Как через JavaScript ввести значение в если у него нет ID?
- как проверить в двух больших массивах всё на наличие того же самого в другом. javascript
- Какое значение имеет символ доллара ($) в JavaScript?
- JavaScript. Как проверить, была ли определена переменная?
- Есть ли аналоги JavaScript?
- С чего начать учить JavaScript?
- Подскажите книги для изучения javascript? Хочу начать изучать веб программирование javascript подойтет для начала?
- Зачем нужен prototype в JavaScript?
- Тяжело ли выучить JavaScript?
- Как создать квадрат через JavaScript?
А как сделать с перечислением ? (пример можно?, не знаю как правильно написать перечисление всех знаков в одну строчку.)