The most common conditional in Julia is the `if`

...`else`

expression. For instance, below we implement the Euclidean algorithm for computing the greatest common divisor, using a conditional to handle the base case:

```
mygcd(a, b) = if a == 0
abs(b)
else
mygcd(b % a, a)
end
```

The `if`

...`else`

form in Julia is actually an expression, and has a value; the value is the expression in tail position (that is, the last expression) on the branch that is taken. Consider the following sample input:

```
julia> mygcd(0, -10)
10
```

Here, `a`

is `0`

and `b`

is `-10`

. The condition `a == 0`

is `true`

, so the first branch is taken. The returned value is `abs(b)`

which is `10`

.

```
julia> mygcd(2, 3)
1
```

Here, `a`

is `2`

and `b`

is `3`

. The condition `a == 0`

is false, so the second branch is taken, and we compute `mygcd(b % a, a)`

, which is `mygcd(3 % 2, 2)`

. The `%`

operator returns the remainder when `3`

is divided by `2`

, in this case `1`

. Thus we compute `mygcd(1, 2)`

, and this time `a`

is `1`

and `b`

is `2`

. Once again, `a == 0`

is false, so the second branch is taken, and we compute `mygcd(b % a, a)`

, which is `mygcd(0, 1)`

. This time, `a == 0`

at last and so `abs(b)`

is returned, which gives the result `1`

.

This modified text is an extract of the original Stack Overflow Documentation created by following contributors and released under CC BY-SA 3.0

This website is not affiliated with Stack Overflow