Đi tìm vòng lặp
Vòng lặp for
lặp qua một khối mã với số lần xác định.
Vòng lặp for
là vòng lặp duy nhất có trong Go.
Đi vòng lặp
Vòng lặp rất hữu ích nếu bạn muốn chạy đi chạy lại cùng một mã, mỗi lần có một giá trị khác nhau.
Mỗi lần thực hiện một vòng lặp được gọi là một lần lặp .
Vòng lặp for
có thể có tối đa ba câu lệnh:
Cú pháp
for statement1; statement2; statement3 {
// code to be executed for each iteration
}
câu lệnh 1 Khởi tạo giá trị bộ đếm vòng lặp.
câu lệnh 2 Được đánh giá cho mỗi lần lặp vòng lặp. Nếu nó đánh giá là TRUE, vòng lặp sẽ tiếp tục. Nếu nó đánh giá là FALSE, vòng lặp kết thúc.
câu lệnh 3 Tăng giá trị bộ đếm vòng lặp.
Lưu ý: Những câu lệnh này không cần phải xuất hiện dưới dạng đối số vòng lặp. Tuy nhiên, chúng cần phải hiện diện trong mã dưới một hình thức nào đó.
ví dụ về vòng lặp
ví dụ 1
Ví dụ này sẽ in các số từ 0 đến 4:
package main
import ("fmt")
func main() {
for i:=0; i < 5; i++ {
fmt.Println(i)
}
}
Kết quả:
0
1
2
3
4
Ví dụ 1 đã giải thích
- tôi:=0; - Khởi tạo bộ đếm vòng lặp (i), và đặt giá trị bắt đầu về 0
- tôi < 5; - Tiếp tục vòng lặp cho đến khi i nhỏ hơn 5
- i++ - Tăng giá trị bộ đếm vòng lặp lên 1 cho mỗi lần lặp
Ví dụ 2
Ví dụ này đếm đến 100 trên hàng chục:
package main
import ("fmt")
func main() {
for i:=0; i <= 100; i+=10 {
fmt.Println(i)
}
}
Kết quả:
0
10
20
30
40
50
60
70
80
90
100
Ví dụ 2 giải thích
- tôi:=0; - Khởi tạo bộ đếm vòng lặp (i), và đặt giá trị bắt đầu về 0
- tôi <= 100; - Tiếp tục vòng lặp cho đến khi i nhỏ hơn hoặc bằng 100
- i+=10 - Tăng giá trị bộ đếm vòng lặp lên 10 cho mỗi lần lặp
Tuyên bố tiếp tục
Câu lệnh continue
được sử dụng để bỏ qua một hoặc nhiều lần lặp trong vòng lặp. Sau đó nó tiếp tục với lần lặp tiếp theo trong vòng lặp.
Ví dụ
Ví dụ này bỏ qua giá trị 3:
package main
import ("fmt")
func main() {
for i:=0; i < 5; i++ {
if i == 3 {
continue
}
fmt.Println(i)
}
}
Kết quả:
0
1
2
4
Tuyên bố nghỉ giải lao
Câu lệnh break
được sử dụng để ngắt/chấm dứt việc thực hiện vòng lặp.
Ví dụ
Ví dụ này thoát khỏi vòng lặp khi i bằng 3:
package main
import ("fmt")
func main() {
for i:=0; i < 5; i++ {
if i == 3 {
break
}
fmt.Println(i)
}
}
Kết quả:
0
1
2
Lưu ý: continue
và break
thường được sử dụng với điều kiện .
Vòng lồng nhau
Có thể đặt một vòng lặp bên trong một vòng lặp khác.
Ở đây, "vòng lặp bên trong" sẽ được thực thi một lần cho mỗi lần lặp của "vòng lặp bên ngoài":
Ví dụ
package main
import ("fmt")
func main() {
adj := [2]string{"big", "tasty"}
fruits := [3]string{"apple", "orange", "banana"}
for i:=0; i < len(adj); i++ {
for j:=0; j < len(fruits); j++ {
fmt.Println(adj[i],fruits[j])
}
}
}
Kết quả:
big apple
big orange
big banana
tasty apple
tasty orange
tasty banana
Từ khóa phạm vi
Từ khóa range
được sử dụng để dễ dàng lặp lại trên một mảng, lát cắt hoặc bản đồ. Nó trả về cả chỉ mục và giá trị.
Từ khóa range
được sử dụng như thế này:
Cú pháp
for index, value := array | slice | map {
// code to be executed for each iteration
}
Ví dụ
Ví dụ này sử dụng range
để lặp qua một mảng và in cả chỉ mục và giá trị ở mỗi mảng ( idx
lưu trữ chỉ mục, val
lưu trữ giá trị):
package main
import ("fmt")
func main() {
fruits := [3]string{"apple", "orange", "banana"}
for
idx, val := range fruits {
fmt.Printf("%v\t%v\n", idx, val)
}
}
Kết quả:
0 apple
1 orange
2 banana
Mẹo: Để chỉ hiển thị giá trị hoặc chỉ mục, bạn có thể bỏ qua kết quả đầu ra khác bằng dấu gạch dưới ( _
).
Ví dụ
Ở đây, chúng tôi muốn bỏ qua các chỉ mục ( idx
lưu chỉ mục, val
lưu giá trị):
package main
import ("fmt")
func main() {
fruits := [3]string{"apple", "orange", "banana"}
for _,
val := range fruits {
fmt.Printf("%v\n", val)
}
}
Kết quả:
apple
orange
banana
Ví dụ
Ở đây, chúng tôi muốn bỏ qua các giá trị ( idx
lưu chỉ mục, val
lưu giá trị):
package main
import ("fmt")
func main() {
fruits := [3]string{"apple", "orange", "banana"}
for idx, _ := range fruits {
fmt.Printf("%v\n", idx)
}
}
Kết quả:
0
1
2