Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2018, 08:17
Новичок на форуме
Отправить личное сообщение для Химер Посмотреть профиль Найти все сообщения от Химер
 
Регистрация: 27.06.2018
Сообщений: 6

Мини-калькулятор через функцию
Всем доброго дня, работяги! Препод говорит, что нужно сделать калькулятор с функциями. Должно быть меню, по которому можно выбрать опцию. Это я сделал. Вот только говорит "Если меню равен 1, то вводит 2 числа и вызвать функцию". Еще говорит, все "if" не должны быть внутри функции, а наоборот. Может кто чем-то помочь? Я не справляюсь(

let menu = prompt("Калькулятор: 1) сложение, 2) вычитание, 3)умножение, 4) деление")
function calc1(a, b) {
  if (menu == 1){
    let s1 = prompt("a");
    let s2 = prompt("b");
    let sum = +s1 + +s2;
    alert(sum);
  }
} 
  function calc2(a, b) {
    if (menu ==2){
    let s1 = prompt("a");
    let s2 = prompt("b");
    let sub = s1 - s2;
    alert(sub);
  } 
}
  function calc3(a, b) {
    if (menu == 3){
    let s1 = prompt("a");
    let s2 = prompt("b");
    let multi = s1 * s2;
    alert(multi);
  }
}
    function calc4(a, b) {
    if (menu == 4){
    let s1 = prompt("a");
    let s2 = prompt("b");
    let div = s1 / s2;
    alert(div);
  }
}

calc1()
calc2()
calc3()
calc4()
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2018, 09:54
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Может так?
function calc() {
    const menu = prompt("Калькулятор: 1) сложение, 2) вычитание, 3)умножение, 4) деление");
    const a = prompt("a");
    const b = prompt("b");

    const operation = [false, '+', '-', '*', '/'][menu] || false;
    if (!operation)
        return alert('Wrong operation');

    return eval(a + ' ' + operation + ' ' + b + ';');
};
alert(calc());
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2018, 14:08
Аспирант
Отправить личное сообщение для Ermite Посмотреть профиль Найти все сообщения от Ermite
 
Регистрация: 20.10.2015
Сообщений: 32

Вариант без eval
function calc() {
    const menu = prompt("Калькулятор: 1) сложение, 2) вычитание, 3)умножение, 4) деление");
    const a = +prompt("a");
    const b = +prompt("b");

    const result = [false, a + b, a - b, a * b, a / b][menu];
		
	return result === false || result === undefined ? 'Wrong operation' : result;
	
};
alert(calc());

Последний раз редактировалось Ermite, 22.07.2018 в 14:11.
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2018, 15:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

простой калькулятор

function calc() {
  const index = prompt("Калькулятор: 1) сложение, 2) вычитание, 3) умножение, 4) деление");
  const a = prompt("a");
  const b = prompt("b");
  const result = {
    1 : +a + +b,
    2 : a - b,
    3 : a * b,
    4 : a / b
  }[index];
  return result == +result && result || "Wrong operation";
}
alert(calc());

Последний раз редактировалось рони, 22.07.2018 в 15:05.
Ответить с цитированием
  #5 (permalink)  
Старый 22.07.2018, 15:08
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

мини калькулятор
<input type="text"><button>=</button>
	<script>
var input = document.querySelector('input');
document.querySelector('button').onclick = e => input.value = eval(input.value);
	</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить функцию через условие Валерий1996 Общие вопросы Javascript 7 21.08.2015 11:44
Можно ли на функцию php повесить триггер и отследить выполнение через скрипт? ligisayan jQuery 1 26.06.2015 14:21
Глобальная переменная: не передается новое значение через функцию armidoll Общие вопросы Javascript 7 29.05.2015 21:54
Эмулировать список через селект Nanto Элементы интерфейса 2 06.03.2012 11:54
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44