for
Go语言的For循环有3中形式,只有其中的一种使用分号。
- 和 C 语言的
for
一样:
for init; condition; post { }
- 和 C 的
while
一样:
for condition { }
- 和 C 的
for(;;)
一样:
for { }
init
一般为赋值表达式,给控制变量赋初值
condition
关系表达式或逻辑表达式,循环控制条件
post
一般为赋值表达式,给控制变量增量或减量。
实例
package main
import "fmt"
func main() {
var b int = 15
var a int
numbers := [6]int{1, 2, 3, 5}
/* for 循环 */
for a := 0; a < 10; a++ {
fmt.Printf("a 的值为: %d\n", a)
}
for a < b {
a++
fmt.Printf("a 的值为: %d\n", a)
}
for i, x := range numbers {
fmt.Printf("第 %d 位 x 的值 = %d\n", i, x)
}
}
Go 语言允许用户在循环内使用循环
break
用于跳出当前循环
实例
package main
import "fmt"
func main() {
/* 定义局部变量 */
var a int = 10
/* for 循环 */
for a < 20 {
fmt.Printf("a 的值为 : %d\n", a);
a++;
if a > 15 {
/* 使用 break 语句跳出循环 */
break;
}
}
}
continue
跳过当前循环执行下一次循环语句
实例
package main
import "fmt"
func main() {
/* 定义局部变量 */
var a int = 10
/* for 循环 */
for a < 20 {
if a == 15 {
/* 跳过此次循环 */
a = a + 1;
continue;
}
fmt.Printf("a 的值为 : %d\n", a);
a++;
}
}
goto
无条件转移代码执行位置,类似于汇编语言的JMP/LOOP
goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
实例
package main
import "fmt"
func main() {
/* 定义局部变量 */
var a int = 10
/* 循环 */
LOOP: for a < 20 {
if a == 15 {
/* 跳过迭代 */
a = a + 1
goto LOOP
}
fmt.Printf("a的值为 : %d\n", a)
a++
}
}
无限循环/死循环
类似C语言的while(1)
实例
package main
import "fmt"
func main() {
for true {
fmt.Printf("这是无限循环。\n");
}
}