Files
CMLeonOS/LuaApps/calculator.lua

98 lines
2.7 KiB
Lua
Raw Permalink Normal View History

2026-02-10 23:02:15 +08:00
print("====================================")
print(" Lua Calculator")
print("====================================")
print("Type 'exit' or 'quit' to exit")
print("Type 'clear' to clear the result")
print()
local result = nil
local operator = nil
local lastResult = nil
while true do
io.write("calc> ")
local input = io.read()
if input == nil or input == "" then
goto continue
end
input = input:lower()
if input == "exit" or input == "quit" then
print("Exiting calculator...")
break
elseif input == "clear" then
result = nil
operator = nil
lastResult = nil
print("Calculator cleared.")
goto continue
elseif input == "help" then
print("Available commands:")
print(" + : Addition")
print(" - : Subtraction")
print(" * : Multiplication")
print(" / : Division")
print(" ^ : Power")
print(" % : Modulo")
print(" clear : Clear calculator")
print(" exit : Exit calculator")
goto continue
end
local num = tonumber(input)
if num ~= nil then
if operator == nil then
result = num
lastResult = num
print("Result: " .. result)
else
local calcResult = nil
if operator == "+" then
calcResult = result + num
elseif operator == "-" then
calcResult = result - num
elseif operator == "*" then
calcResult = result * num
elseif operator == "/" then
if num == 0 then
print("Error: Division by zero!")
else
calcResult = result / num
end
elseif operator == "^" then
calcResult = result ^ num
elseif operator == "%" then
if num == 0 then
print("Error: Modulo by zero!")
else
calcResult = result % num
end
end
if calcResult ~= nil then
result = calcResult
lastResult = calcResult
print("Result: " .. result)
end
operator = nil
end
else
if input == "+" or input == "-" or input == "*" or input == "/" or input == "^" or input == "%" then
operator = input
print("Operator: " .. operator)
else
print("Invalid input: " .. input)
print("Type 'help' for available commands")
end
end
::continue::
end
print()
print("Final result: " .. (lastResult or "No calculation"))
print("Goodbye!")