Control Flow
In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. [1]
This page provides syntax for some of the common control flow methods in Julia . Each section includes an example to demonstrate the described methods.
Use Cases and Syntax
Test if a specified expression is true or false
Short-circuit evaluation
Test if all of the conditions are true
x && yTest if any of the conditions are true
x || yTest if a condition is not true
!z
Conditional evaluation
ifstatementif-elseif-elseif-else?:(ternary operator)
Conditional Statements
Input:
# conditions.jl
# Demonstrates use of if statement
x, y, z = 100, 200, 300
println("x = $x, y = $y, z = $z")
# Test if x equals 100
if x == 100
println("$x equals 100")
end
# Test if y does not equal z
if !(y == z)
println("$y does not equal $z")
end
# Test multiple conditions
if x < y < z
println("$y is less than $z and greater than $x")
end
# Test multiple conditions using "&&"
if x < y && x < z
println("$x is less than $y and $z")
end
# Test multiple conditions using "||"
if y < x || y < z
println("$y is less than $x or $z")
end
# if-else statement
if x < 100
println("$x less than 100")
else
println("$x is equal to or greater than 100")
end
# Same logic as above but using the ternary or
# base three operator (?:)
println(x < 100 ? "$x less than 100 again" : "$x equal to or greater than 100 again")
# if-elseif-else statement
if y < 100
println("$y is less than 100")
elseif y < 200
println("$y is less than 200")
elseif y < 300
println("$y is less than 300")
else
println("$y is greater than or equal to 300")
endOutput:
x = 100, y = 200, z = 300
100 equals 100
200 does not equal 300
200 is less than 300 and greater than 100
100 is less than 200 and 300
200 is less than 100 or 300
100 is equal to or greater than 100
100 equal to or greater than 100 again
200 is less than 300Loops
Repeat a block of code a specified number of times or until some condition is met.
whileloopforloopUse
breakto terminate loop
Input:
# Demonstrates use of loops
i = 1
# while loop for incrementing i by 1 from 1 to 3
while i <= 3
println("while: $i")
global i += 1 # updating operator; equivalent to i = i + 1
end
# for loop
for j = 1:3
println("for: $j")
end
for j in 1:3
println("for again: $j")
end
# nested for loop
for j = 1:3
for k = 1:3
println("nested for: $j * $k = $(j*k)")
end
endOutput:
while: 1
while: 2
while: 3
for: 1
for: 2
for: 3
for again: 1
for again: 2
for again: 3
nested for: 1 * 1 = 1
nested for: 1 * 2 = 2
nested for: 1 * 3 = 3
nested for: 2 * 1 = 2
nested for: 2 * 2 = 4
nested for: 2 * 3 = 6
nested for: 3 * 1 = 3
nested for: 3 * 2 = 6
nested for: 3 * 3 = 9Comparison Operators and Functions
Equality
x == y or isequal(x, y)
Inequality
x != y or !isequal (x, y)
Less than
x < y
Less than or equal to
x <= y
Greater than
x > y
Greater than or equal to
x >= y
Input:
# compare.jl
# Demonstrate comparison operators
# Assign values to variables using parallel assignment
c1, c2, c3, c4 = 25, 50, 75, 50
println("c1 = $(c1), c2 = $(c2), c3 = $(c3), c4 = $(c4)")
# Output results of different comparison operations
# Testing equality
println(" c1 = c3 is $(c1 == c3)")
println(" c2 = c4 is $(isequal(c2, c4))")
# Changing values using abbreviated assignment operators
c1 *= 3 # Shorthand for c1 = c1 * 3
c4 += 1 # Shorthand for c4 = c4 + 1
println("c1 = $(c1), c2 = $(c2), c3 = $(c3), c4 = $(c4)")
# Testing less than and greater than
println(" c1 < c2 is $(c1 < c2)")
println(" c4 <= c2 is $(c4 <= c2)")
println(" c1 > c2 is $(c1 > c2)")
println(" c3 >= c2 is $(c3 >= c2)")Output:
c1 = 25, c2 = 50, c3 = 75, c4 = 50
c1 = c3 is false
c2 = c4 is true
c1 = 75, c2 = 50, c3 = 75, c4 = 51
c1 < c2 is false
c4 <= c2 is false
c1 > c2 is true
c3 >= c2 is trueReferences
Wikipedia contributors. (n.d.). Control flow. In Wikipedia. Retrieved May 1, 2024, from https://en.wikipedia.org/wiki/Control_flow
Resources
Julia Documentation: Manual - Control Flow
Think Julia: Chapter 5 - Conditionals and Recursion
Think Julia: Chapter 7 - Iteration
Last updated
