# Conditionals

This section covers the if-else statement in Julia and the ternary operator, and contains a short discussion of short-circuit evaluation in Julia.

## If-Else Statements

Julia conditionals are comprised of an if statement and and optional else statement, followed by the end keyword. The if statement requires a boolean predicate value.

if boolean
# do something
else
# do something else
end

if 1 < 2
print("true")
else
print("false")
end

true


### Else If

It is also possible to provide elseif clauses to the conditional to check for mutiple possible outcomes.

number = "three"

if number == "one"
print(1)
elseif number == "two"
print(2)
elseif number == "three"
print(3)
elseif number == "four"
print(4)
else
print("not 1, 2, 3, or 4")
end

3


## Ternary Operator

For quick-and-dirty evaluations, Julia provides a ternary operator which is similar to those of many other languages. It uses ? : syntax:

predicate ? value_if_true : value_if_false


For example, you could assign a value based on whether or not some other value is even or odd:

x = 3
y = x % 2 == 0 ? 1 : 0

0


## Short-Circuit Evaluation

Finally, Julia short-circuits evaluation of compound expressions using && and || as in most other languages:

• Evaluation of A && B stops if A is false and returns false.
• Evaluation of A || B stops if A is true and returns true.

Because ⊻ requires the left and right predicates to be different, its evaluation cannot be short-circuited.

As a demonstration, consider the conditional below. B is not defined, but this won’t error because the evaluation will short-circuit upon evaluating A in each case and thus B is never evaluated.

A = false
if !(A && B)
println("&& short-circuited")
end

A = true
if A || B
println("|| short-circuited")
end

&& short-circuited
|| short-circuited



## Exercises

Exercise 2.2.1: Write a function print_name(name::String) which prints out the name name only if it’s length is greater than 0. If the length is 0, it should print out "Name string is empty.".

Hint: You can use length(s) to get the length of a string s.

Exercise 2.2.2: Following each line below, write the value of x.

x = 1 < 2 ? 0 : 1          # x = ____
x = x > -1 ? 2 : 0         # x = ____
x = true && false ? 3 : 5  # x = ____
x = x == 5 ? 2 : -1        # x = ____
x = x < 0 ? -1 : 4         # x = ____


Exercise 2.2.3: For each line below, determine whether or not the line will error in evaluation. If a line errors, assume it is not executed. Assume that A = true, B = false, and C = true have already been set.

A && B                     # Error? ____
A && D                     # Error? ____
A || C                     # Error? ____
B && E                     # Error? ____
C || D                     # Error? ____
C && (A || B)              # Error? ____
B && (A || D)              # Error? ____
A && (C && D)              # Error? ____
B ⊻ D                      # Error? ____