Trong bài viết này, mình sẽ giới thiệu các câu lệnh điều khiển như if, switch và các vòng lặp như for, range,… Cơ bản thì khá tương đồng với những ngôn ngữ khác, nhưng Golang có một vài điểm đặc biệt riêng rất thú vị và trong bài viết này mình sẽ giới thiệu nhé! Dưới đây là một số ví dụ về cách sử dụng các câu lệnh điều khiển và vòng lặp trong Golang.
Nếu các bạn chưa biết về kiểu dữ liệu trong Golang thì tìm hiểu bài viết này nhé Giới thiệu kiểu dữ liệu trong lập trình Golang.
1. Câu lệnh điều kiện if trong lập trình Golang
Câu lệnh if được sử dụng để thực thi một khối mã chỉ khi một điều kiện được đáp ứng. Cú pháp của câu lệnh if như sau:
if điều_kiện {
// khối mã được thực thi nếu điều kiện đúng
}
Ví dụ:
package main
import "fmt"
func main() {
num := 10
if num > 5 {
fmt.Println("num lớn hơn 5")
}
}
2. Câu lệnh điều kiện if else trong lập trình Golang
Câu lệnh if else được sử dụng để thực thi một khối mã nếu điều kiện đúng và một khối mã khác nếu điều kiện sai. Cú pháp của câu lệnh if else như sau:
if điều_kiện {
// khối mã được thực thi nếu điều kiện đúng
} else {
// khối mã được thực thi nếu điều kiện sai
}
Ví dụ:
package main
import "fmt"
func main() {
num := 10
if num > 5 {
fmt.Println("num lớn hơn 5")
} else {
fmt.Println("num nhỏ hơn hoặc bằng 5")
}
}
3. Câu lệnh điều kiện if else if trong lập trình Golang
Câu lệnh if else if được sử dụng để kiểm tra nhiều điều kiện khác nhau. Cú pháp của câu lệnh if else if như sau:
if điều_kiện_1 {
// khối mã được thực thi nếu điều kiện 1 đúng
} else if điều_kiện_2 {
// khối mã được thực thi nếu điều kiện 2 đúng
} else {
// khối mã được thực thi nếu tất cả các điều kiện đều sai
}
Ví dụ:
package main
import "fmt"
func main() {
num := 10
if num > 20 {
fmt.Println("num lớn hơn 20")
} else if num > 5 {
fmt.Println("num lớn hơn 5 và nhỏ hơn hoặc bằng 20")
} else {
fmt.Println("num nhỏ hơn 20 hoặc nhỏ hơn 5")
}
}
4. Câu lệnh switch trong lập trình Golang
Câu lệnh switch được sử dụng để kiểm tra nhiều trường hợp khác nhau của một biến hoặc một biểu thức. Cú pháp của câu lệnh switch như sau:
switch biểu_thức {
case giá_trị_1:
// khối mã được thực thi nếu biểu thức có giá trị bằng giá trị_1
case giá_trị_2:
// khối mã được thực thi nếu biểu thức có giá trị bằng giá trị_2
default:
// khối mã được thực thi nếu tất cả các trường hợp đều không đúng
}
Ví dụ:
package main
import "fmt"
func main() {
num := 5
switch num {
case 5:
fmt.Println("num có giá trị bằng 5")
case 10:
fmt.Println("num có giá trị bằng 10")
default:
fmt.Println("num không có giá trị bằng 5 hoặc 10")
}
}
Golang còn có keywork đặc biệt là fallthrough
là một từ khóa được sử dụng để thực hiện các câu lệnh tiếp theo trong một switch case
ngay sau case hiện tại, bất kể điều kiện được đáp ứng hay không. Tức là, nó cho phép chuyển hướng các câu lệnh từ một case sang case tiếp theo mà không kiểm tra điều kiện của case đó.
Ví dụ:
package main
import "fmt"
func main() {
n := 2
switch n {
case 1:
fmt.Println("Số 1")
fallthrough
case 2:
fmt.Println("Số 2")
fallthrough
case 3:
fmt.Println("Số 3")
}
}
Trong ví dụ trên, biến n
có giá trị là 2, vì vậy case thứ 2 sẽ được thực hiện và in ra “Số 2”. Tuy nhiên, do case thứ 2 có từ khóa fallthrough
, nó sẽ chuyển quyền kiểm soát sang case tiếp theo mà không kiểm tra điều kiện. Do đó, case thứ 3 cũng sẽ được thực hiện và in ra “Số 3”.
Lưu ý:
TUY NHIÊN, NÊN CẨN THẬN KHI SỬ DỤNG TỪ KHÓAFALLTHROUGH
, VÌ NÓ CÓ THỂ DẪN ĐẾN HÀNH VI KHÔNG MONG MUỐN VÀ GÂY KHÓ KHĂN CHO VIỆC DEBUG. THƯỜNG THÌ VIỆC SỬ DỤNG TỪ KHÓA NÀY SẼ ÍT ĐƯỢC KHUYẾN KHÍCH TRONG CÁC ỨNG DỤNG LỚN VÀ PHỨC TẠP.
5. Vòng lặp for
Trong Golang, câu lệnh vòng lặp for được sử dụng để lặp lại một khối mã cho một số lần xác định hoặc cho đến khi một điều kiện nhất định được đáp ứng. Câu lệnh for có thể được sử dụng với ba cấu trúc khác nhau:
Vòng lặp for cơ bản
Cấu trúc cơ bản của vòng lặp for như sau:
for biến:= giá_trị_bắt_đầu; điều_kiện_lặp; bước_nhảy {
// khối mã được thực thi trong vòng lặp
}
Ví dụ:
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
}
Vòng lặp for vô hạn
Vòng lặp for vô hạn được sử dụng khi bạn muốn lặp mã mãi mãi. Để tạo một vòng lặp for vô hạn, bạn có thể sử dụng cấu trúc sau:
for {
// khối mã được lặp lại vô tận
}
Ví dụ:
package main
import "fmt"
func main() {
i := 0
for {
fmt.Println(i)
i++
}
}
Vòng lặp for với cấu trúc init
Cấu trúc init được sử dụng để khởi tạo giá trị của biến bên ngoài vòng lặp. Cấu trúc này chỉ được thực hiện một lần trước khi vòng lặp bắt đầu. Cú pháp của vòng lặp for với cấu trúc init như sau:
for init; condition; post {
// Thực hiện các câu lệnh trong vòng lặp
}
“init” là câu lệnh được sử dụng để khởi tạo biến trước khi bắt đầu vòng lặp, “condition” là điều kiện dừng vòng lặp và “post” là câu lệnh được thực hiện sau mỗi lần lặp.
Ví dụ:
package main
import "fmt"
func main() {
num := 0
for i := 0; i < 5; i++ {
num += i
fmt.Println(num)
}
}
Trong ví dụ trên, biến “i” được khởi tạo bằng giá trị 1 trước khi bắt đầu vòng lặp và sau mỗi lần lặp, giá trị của biến “i” sẽ được tăng lên 1 đơn vị. Vòng lặp sẽ dừng khi biến “i” đạt đến giá trị 5.
6. Vòng lặp range
Vòng lặp range được sử dụng để lặp qua các phần tử của một slice hoặc một map. Cú pháp của vòng lặp range như sau:
for key, value := range tên_slice_hoặc_map {
// khối mã được thực thi trong vòng lặp
}
Ví dụ:
package main
import "fmt"
func main() {
nums := []int{1, 2, 3, 4, 5}
for index, value := range nums {
fmt.Printf("nums[%d] = %d\n", index, value)
}
}
Kết Bài
Hy vọng những ví dụ trên sẽ giúp bạn hiểu rõ hơn về cách sử dụng các câu lệnh điều khiển và vòng lặp trong Golang. Nếu các bạn có thắc mắc nào khác, thì vui lòng comment vào bài viết mình sẽ giải đáp mọi thắc mắc của các bạn. Nếu các bạn muốn tìm hiểu thêm về Golang thì đây sẽ là tài liệu cần thiết cho bạn https://go.dev/doc/