Các câu lệnh điều khiển vòng lặp trong ngôn ngữ Go được sử dụng để thay đổi việc thực thi chương trình. Khi việc thực thi vòng lặp đã cho rời khỏi phạm vi của nó, thì các đối tượng được tạo trong phạm vi cũng bị phá hủy. Ngôn ngữ Go hỗ trợ 3 loại câu lệnh điều khiển vòng lặp:
- Break
- Goto
- Continue
Lệnh kiểm soát vòng lặp trong Golang
Lệnh Break
Câu lệnh break trong Golang được sử dụng để chấm dứt vòng lặp hoặc câu lệnh mà nó xuất hiện. Sau đó, quyền điều khiển sẽ chuyển đến các câu lệnh xuất hiện sau câu lệnh break, nếu có. Nếu câu lệnh break xuất hiện trong vòng lặp lồng nhau, thì nó chỉ chấm dứt những vòng lặp có chứa câu lệnh break.
Ví dụ:
// Minh họa chương trình Go
// dùng lệnh break
package main
import "fmt"
// Hàm main
func main() {
for i:=0; i<5; i++{
fmt.Println(i)
// Ngắt vòng lặp khi giá trị i = 3
if i == 3{
break;
}
}
}
Kết quả:
0
1
2
3
Lệnh Goto
Câu lệnh này được sử dụng để chuyển quyền điều khiển đến câu lệnh được gắn nhãn trong chương trình. Nhãn là mã định danh hợp lệ và được đặt ngay trước câu lệnh mà quyền điều khiển được chuyển từ đó. Nói chung, câu lệnh goto trong Golang không được các lập trình viên sử dụng vì khó theo dõi luồng điều khiển của chương trình.
Ví dụ:
// Go program to illustrate
// the use of goto statement
package main
import "fmt"
func main() {
var x int = 0
// vòng lặp for hoạt động như một vòng lặp while
Lable1: for x < 8 {
if x == 5 {
// dùng lệnh goto
x = x + 1;
goto Lable1
}
fmt.Printf("value is: %d\n", x);
x++;
}
}
Kết quả:
value is: 0
value is: 1
value is: 2
value is: 3
value is: 4
value is: 6
value is: 7
Lệnh Continue
Câu lệnh này được sử dụng để bỏ qua phần thực thi của vòng lặp theo một điều kiện nhất định. Sau đó, nó chuyển quyền điều khiển đến đầu vòng lặp. Về cơ bản, nó bỏ qua các câu lệnh tiếp theo và tiếp tục với lần lặp tiếp theo của vòng lặp.
Ví dụ:
// Go program to illustrate
// the use of continue statement
package main
import "fmt"
func main() {
var x int = 0
// vòng lặp for hoạt động như vòng lặp while
for x < 8 {
if x == 5 {
// bỏ qua 2 lần lặp lại
x = x + 2;
continue;
}
fmt.Printf("value is: %d\n", x);
x++;
}
}
Kết quả:
value is: 0
value is: 1
value is: 2
value is: 3
value is: 4
value is: 7