Navigation
阅读进度0%
Go 循环控制:for、range、break 与 continue
December 19, 2024 (1y ago)
Go
Loop
ControlFlow
本章概述
本章内容概述如下
- for循环
- range 对string,Array,slice ,map进行遍历
- 循环且套(求质数)
- 乘法表
- break(全部终止) 和continue(终止本次循环)
for循环
// 1.写法1
func forSmipte () {
// for 有三种范式 初始值,条件 ,赋值 程序
// for in; conditons; post {}
// for condition { }
// for { }
// 执行顺序分析 ,先对in赋值 ===> 看条件 ===> 执行循环 ==> 赋值
// ===> 看条件 ===> 执行循环 ==> 赋值
sum := 0
for i := 0; i <= 10; i++ {
sum += i
}
fmt.Println(sum)
}
// 2. 写法2
func forSmipte2 () {
// 范式2 int post可选 ,类似于while
sum := 1
for sum <= 10 {
sum += sum
}
fmt.Println(sum)
}range 对string,Array,slice ,map进行遍历
// 最常见的操作 这种格式的循环可以对字符串、数组、切片等进行迭代输出元素。
func forSmipte3 () {
// For-each range 循环
strings := []string{"google", "runoob"} // 形成了一个数组,内容是string ====> ["google", "runoob"]
fmt.Println(strings)
for i, s := range strings {
fmt.Println(i, s)
}
numbers := [6]int{1, 2, 3, 5} // =====> [1,2,3,5,0,0]
fmt.Println(numbers)
for i,x:= range numbers {
fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
}
}如何进行无限循环
func forSmipte4 () {
// for {
// sum++ // 无限循环下去 bug代码
// }
}循环且套(求质数)
func Qiantao() {
// 循环嵌套的范式
// for [condition | ( init; condition; increment ) | Range]
// {
// for [condition | ( init; condition; increment ) | Range]
// {
// statement(s);
// }
// statement(s);
// }
// 求质数
var i,j int
for i = 2; i < 100;i++ {
for j = 2; j <= (i/j); j++ {
if( i%j == 0 ){
break // 发现了因子,就不是素数 跳出
}
}
if( j > (i%j) ) {
fmt.Printf("%d 是素数 \n",i)
}
}
}乘法表
func jiujiu() {
var i,j int
for i = 1; i < 10; i++ {
for j = 1; j <= i; j++ {
fmt.Printf("%dx%d=%d ",j,i,j*i)
}
fmt.Println("")
}
}break(全部终止) 和continue(终止本次循环)
- break
// 不使用标记的break 打断跳出全部
func breakDaduan() {
for i :=1; i <= 3; i ++ {
for i2 :=11; i2 <= 13; i2 ++ {
fmt.Printf("i2: %d\n",i2)
break
}
}
}
// 使用标记brak
func breakDaduanD() {
re:for i :=1; i <= 3; i ++ {
for i2 :=11; i2 <= 13; i2 ++ {
fmt.Printf("i2: %d\n",i2)
break re
}
}
}- continue
// continue 跳出当前循环,它也有跳出某个循环的特征语法
// 跳过当前循环的剩余语句,然后继续进行下一轮循环。
func Continue(){
for i := 1; i <= 3; i++ {
for i2 :=1; i2 <= 13; i2++ {
if(i2 == 6){
continue
}
fmt.Printf("i2: %d\n",i2)
}
}
}
// 建议不要到处使用goto要不然你就凉凉了!
func GotoExample(){
var a int =10
Loop:for a < 20 {
if( a == 15 ) {
a = a +1
goto Loop
}
fmt.Printf("value a := %d\n",a)
a++
}
}