Калькулятор на Swift: Сложение чисел (Урок 3)

Добавление математических операций

Реализуем операцию сложения. При нажатии кнопки «+» в текстовое поле добавляется знак «+». Для корректной работы необходимо:

  1. Запомнить число перед знаком операции.
  2. Удалить знак «+» после ввода следующего числа.
  3. Вывести сумму после нажатия кнопки «=».

Добавим переменные:

  • numberBeforeOperation: переменная типа Double, хранящая число перед операцией; начальное значение 0.
  • mathOperation: булева переменная, указывает, была ли нажата кнопка математической операции; начальное значение false.

Добавим проверку: если mathOperation == true, в текстовое поле вводится только новое значение с кнопки, без предыдущего. Затем устанавливаем mathOperation = false.

В противном случае, действуем как ранее: берем текущее значение из текстового поля, добавляем новое значение с кнопки, конвертируем в Double и присваиваем переменной numberOnScreen.

Реализация математических операций

Добавим кнопки вычитания, умножения и деления. Создадим переменную operation типа Double для кода нажатой кнопки операции. Проверим нажатие кнопки «=» или «C» (очистка) с использованием оператора && (логическое И).

Если нажата кнопка операции (sender.tag != 10 && sender.tag != 15), выполняем математические операции. Значения sender.tag:

  • 11: деление
  • 12: умножение
  • 13: вычитание
  • 14: сложение

При нажатии на «=» (sender.tag == 15), выполняем выбранную операцию с numberBeforeOperation и numberOnScreen:

if operation == 11 { result.text = String(numberBeforeOperation / numberOnScreen) }
else if operation == 12 { result.text = String(numberBeforeOperation * numberOnScreen) }
else if operation == 13 { result.text = String(numberBeforeOperation - numberOnScreen) }
else if operation == 14 { result.text = String(numberBeforeOperation + numberOnScreen) }

Результат выводим в текстовое поле.

Кнопка очистки

Кнопка очистки (sender.tag == 10) обнуляет переменные: result.text, numberBeforeOperation, numberOnScreen, operation.

Получился функциональный калькулятор, выполняющий базовые арифметические операции. Проверка показала корректность всех операций, включая очистку.

Что будем искать? Например,программа