-- Use the print() function to print text to the console
print("Hello")
print("world.")
-- Result:
-- Hello
-- world.
-- Concantenate strings and variables using ".."
local species = "Martian"
print("Greetings " .. species)
-- Result:
-- Greetings Martian
We use comments to describe what specific blocks of code do in plain language (not code). Comments are not actually executed. Instead, they are just there to help us read the code.
We can make multiline comments with "--[[comment]]" and single line comments with "--".
--[[
This program will ask the user for two numbers.
Then it will print their sum.
]]
print("Enter a number: )
local numberOne = tonumber(io.read())
print("Enter a second number: )
local numberTwo = tonumber(io.read())
print("Sum: " .. (numberOne + numberTwo))
-- This program adds 1 and 2
local added = 1 + 2
print(added)
We use variables to store values. We can use and alter these values throughout our program.
-- Initialize a variable
local myVarName = 5
-- Assign a new value to an existing variable
myVarName = 10
-- Print the value of a variable
print(myVarName) -- prints "10"
print("The value is: " .. myVarName) -- prints "The value is 10"
We can use input from the user to control our code using the io.read() command. First, use a print statement to ask the user a prompt. Then, use io.read() to collect the input from the user. We can store the input in a variable so that we can use the input in our program.
Note that values input by the user are stored as a string.
-- This program gets the name from the user
print("What is your name?")
local name = io.read()
print("Hello" .. name .. "!")
-- Use the tonumber() function to convert user input to a number
print("Enter a number: ")
local num = tonumber(io.read())
Use mathematical operators to alter values.
-- Operators: + Addition - Subtraction * Multiplication / Division ^ Exponentiation % Modulus (Remainder) () Parentheses (For order of operations) -- Examples var z = x + y var w = x * y -- Increment (add one) x = x + 1 -- Decrement (subtract one) x = x - 1 -- Exponentiation local squared = 5 ^ 2 print(squared) -- prints 25 -- Modulus local z = 10 % 4 -- 10 / 4 = 2 remainder 2 print(z) -- prints 2
You can generate random numbers using the math.random(low, high) command.
-- You need to include this command to enable randomness math.randomseed(os.time()) -- Generates a random integer between low and high, inclusive math.random(low, high) -- Example: This simulates rolling a 6-sided die local roll = math.random(1, 6)
A function is a block of reusable code that is used to perform a single task. We use functions in our code to break our program into smaller parts, make our program more readable, and to avoid creating repetitive code.
Naming Functions: You should name functions based on what they do. Names should also use the lower camel case convention.
Defining Functions: Defining a function is the same as creating a function. Inside the function definition, you tell the computer what commands to execute when the function is called.
Calling Functions: Calling a function is telling the computer to execute the code inside of the function definition. Call a function by writing the function name followed by parentheses. Important note: In Lua, you have to define a function before you call it!
-- Defines a function that adds two numbers together
local num1 = 10
local num2 = 12
local function addNumbers()
local sum = num1 + num2
print("Sum: " .. sum)
end
-- Calls the function
addNumbers()
-- Result: prints "Sum: 22"
We can use the return command to have a function give a value back to the code that called it.
-- We add a return statement in order to use the value of the
-- sum variable in our program
local function addNumbers()
local sum = num1 + num2
return sum
end
local num1 = 10
local num2 = 12
local x = addNumbers()
-- x is assigned the value returned by the addNumbers function (22)
We can use parameters to input information into a function. This makes our functions more general and versatile. To create parameters, you include them in the function definition. Then, when you call the function, you need to include arguments, or values for the parameters.
-- In this program, parameters are used to input two numbers
local function addNumbers(numOne, numTwo)
local sum = numOne + numTwo
return sum
end
-- We call the function with arguments,
-- or values inside the parentheses
-- This program will print '7'
print(addNumbers(3, 4))
A Boolean is either a true or false value. You create a boolean variable by assigning it the value of either true or false. Note that there are no quotation marks because a boolean value is not a string.
local myBoolean = true local anotherBoolean = false
Use logical operators to check multiple conditions at once or one condition out of multiple. Logical operators evaluate to booleans.
-- Not Operator local y = true local x = not y -- x is assigned the opposite of y, or false -- And Operator: Evaluates to true if all operands are true local x = true local y = false local z = x and y -- z is assigned the value of false -- Or Operator: Evaluates to true if at least one operand is true local x = true local y = false local z = x or y -- z is assigned the value of true -- You can combine many booleans! local x = true local y = false local z = true local lotsOfBooleans = x and (y or z) -- evaluates to true
Comparison operators compare the operands on either side of the operator and decide their relationship. Comparison operators evaluate to booleans.
x == y -- is x equal to y x ~= y -- is x not equal to y x > y -- is x greater than y x >= y -- is x greater than or equal to y x < y -- is x less than y x <= y -- is x less than or equal to y --Example: local grade = 80 local isPassing = grade >= 70 print(isPassing) -- Prints true because 80 is greater than 70
Use an if/else statement to tell the computer to make a decision between multiple conditions. If the first condition is false, the computer will skip to the next condition until it finds one that is true. If no conditions are true, the commands inside the else block will be performed.
-- If Statement
if BOOLEAN_EXPRESSION then
-- code to execute if true
end
-- If/Else Statement
if BOOLEAN_EXPRESSION then
-- code to execute if true
else
-- code to execute if false
end
-- Some example conditionals:
-- Checks if a number is negative
local x = -1
if x < 0 then
print("x is negative.")
end
-- Checks if a color is a primary color
local color = "purple"
if color == "red" or color == "blue" or color == "yellow" then
print("Primary color.")
else
print("Not a primary color.")
end
Use a for loop to repeat a block of code a fixed number of times.
-- General for loop structure:
for i = 1, COUNT, INCREMENT do
-- Code to repeat COUNT number of times
end
-- This for loop will print "Hello" fives times
for i = 1, 5 do
print("Hello")
end
-- This example prints numbers 0-10
for i = 0, 10 do
print(i)
end
-- You can also include an increment value
-- This prints the odd numbers from 1-11
for i = 1, 11, 2 do
print(i)
end
While loops repeat a block of code until a condition becomes false.
-- General while loop structure:
while BOOLEAN_EXPRESSION do
-- code to repeat until
-- BOOLEAN_EXPRESSION is false
end
-- This while loop counts down from 15 to 10
local i = 15
while i > 9 do
print(i)
i = i - 1
end
-- Use a break statement to exit out of a loop
while true do
-- code to repeat
if condition then
break
end
end
An array is a way to store multiple values or data under one variable name. In Lua, arrays start with an index of 1. You can add items, remove items, and alter items within an array.
-- Create an empty array
local arr = {}
-- Create an array with values
local arr = {1, 2, 4}
-- An array can have any type (x is a variable)
local arr = [4, "hello", x]
-- Access an element in an array with arr[index]
local firstElem = arr[1]
-- Assign an index in an array a new value
arr[3] = 9
-- Add an item to an array as the last item
table.insert(arr, item)
-- You can also specify where to add the item in the list
table.insert(arr, index, item)
-- Remove the last item in an array
table.remove(arr)
-- Remove an item at a specific index
table.remove(arr, index)
-- Length of an array
local length = #arr
-- Loop over an array
for i = 1, #arr do
local item = arr[i]
print(item)
end