Conditionals in Go
Conditional constructs are very useful in programming as they allow complex logic to be implemented within code. In this blog post, I will go over the methods on how to execute a code block conditionally.
The first method is to use an if statement. The code block below demonstrates how this can be done:
import "fmt"
var a int = 1
if a == 1 { // the condition checks whether a is equal to 1
a++
}
fmt.Println(a)
//output: 2
Note that the condition which is being evaluated does not have to be in brackets.
If/else statements can be used when we want code block 1
to be executed when condition a
is true and code block 2
to be executed when condition a
is false.
import "fmt"
var a int = 2
if a == 1 {
fmt.Println("a is equal to 1")
} else if a < 1 { // the condition checks whether a is less than 1
fmt.Println("a is less than 1")
} else { // proceed if both conditions above are false
fmt.Println("a is greater than 1")
}
// output: a is greater than 1
Another conditional construct is a switch statement. A switch statement can be used when an expression needs to be compared to multiple different values. The code block below demonstrates how switch statements can be used:
import "fmt"
var a = 2
switch a {
case 1: // does a == 1?
fmt.Println("a is equal to 1")
case 2: // does a == 2?
fmt.Println("a is equal to 2")
}
// output: a is equal to 2
A switch statement can have a default case as well. An example below shows this:
import "fmt"
var a = 3
switch a {
case 1: // does a == 1?
fmt.Println("a is equal to 1")
case 2: // does a == 2?
fmt.Println("a is equal to 2")
default:
fmt.Println("a is neither 1 nor 2")
// output: a is neither 1 nor 2
In both if/else and switch statements, it is possible to declare a variable inside the statement. Note that this variable would only exist within the scope of the conditional construct.
The code block below demonstrates how a variable can be declared in an if/else statement.
import "fmt"
if b := 10; b % 2 == 0 { // define b = 10, check if b is divisible by 2
b++ // increment 'b' by 1
fmt.Println(b)
} else {
b += 2 // increment 'b' by 2
fmt.Println(b)
}
// output: 11
Note that it is not possible to print b
outside of the if/else statement because it is only defined within the scope of the statement.
The code block below demonstrates how a variable can be declared inside a switch statement:
import "fmt"
switch b := 3; b {
case 1: // does b == 1?
fmt.Println("b is equal to 1")
case 2: // does b == 2?
fmt.Println("b is equal to 2")
default:
fmt.Println("b is neither 1 nor 2")
// output: b is neither 1 nor 2
By tightly scoping a variable to where it is needed and by making the code more concise, declaring a variable within a conditional construct can improve code readability and maintainability.
Subscribe to my newsletter
Read articles from Alissa Lozhkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Alissa Lozhkin
Alissa Lozhkin
My name is Alissa and I am a fourth-year computer science and math student at the University of Toronto! I am very interested in computer science and software development, and I love learning about new technologies! Get in touch with me on LinkedIn: https://www.linkedin.com/in/alissa-lozhkin