# 1. Introduction

A simple calculator is a great beginner project for anyone learning a programming language. Such a program covers essential concepts like user input, arithmetic operations, and conditional statements. In this guide, we will create a Swift program to function as a basic calculator capable of performing addition, subtraction, multiplication, and division.

# 2. Program Overview

Our program will prompt the user to input two numbers, followed by the desired arithmetic operation (e.g., '+', '-', '*', '/'). The program will then compute and display the result based on the provided input.

# 3. Code Program

import Foundation

// Take user input for the numbers and operation
print("Enter the first number:")

print("Enter the second number:")

print("Enter the operation (+, -, *, /):")

// Perform the calculation based on the chosen operation
var result: Double?

switch operation {
case "+":
result = num1 + num2
case "-":
result = num1 - num2
case "*":
result = num1 * num2
case "/":
if num2 != 0 {
result = num1 / num2
} else {
print("Error: Division by zero.")
}
default:
print("Invalid operation entered.")
}

if let res = result {
print("Result: \(res)")
}

### Output:

Enter the first number:
5
Enter the second number:
3
Enter the operation (+, -, *, /):
+
Result: 8.0

# 4. Step By Step Explanation

1. We begin by importing the Foundation module, enabling us to use specific functionalities, like the readLine() function for user input.

2. The program first prompts the user for two numbers and an arithmetic operation. readLine() captures user input as a string. We then use optional binding (with !) to unwrap and convert the input into Double values.

3. A switch statement evaluates the chosen operation. Depending on the operation input, the program will either add, subtract, multiply, or divide the two numbers. The result is stored in the optional variable result.

4. For division, we incorporate an additional check (if num2 != 0) to ensure the denominator is not zero, preventing a division-by-zero error.

5. If an invalid operation is entered, the program displays an "Invalid operation entered." message.

6. Finally, using optional binding (if let res = result), the program prints out the result if available. If there were issues, such as division by zero or an invalid operation, the program would have already displayed an error message.