for init; condition; post { }
while True
);1.求1到10的数字之和。
package main
import "fmt"
func main() {
count := 0
for i := 0; i <= 10; i++ {
count += i
}
fmt.Println("1到10的数字之和为:",count)
}
执行结果
1到10的数字之和为: 55
2.省略init和post:计算count小于10时自相加的值:
package main
import "fmt"
func main() {
count := 1
for ; count < 10; {
count += count
}
fmt.Println("count小于10时自相加的值为:",count)
}
也可以省略;
号:
package main
import "fmt"
func main() {
count := 1
for count < 10{ //省略分号
count += count
}
fmt.Println("1到10的数字之和为:",count)
}
执行结果
count小于10时自相加的值为
3.Golang中没有while循环,可以通过省略condition来实现:
package main
import "fmt"
func main() {
for { //省略condition
fmt.Println("死循环")
}
}
package main
import "fmt"
func main() {
count := 0
for i := 0; i < 10; i++ {
for j := 0; j <= 10; j++ {
count += j
}
}
fmt.Println("(1到10的数字之和)x10:",count)
}
输出结果
(1到10的数字之和)x10: 550
用于对字符串、数组、切片等进行迭代输出元素:
package main
import "fmt"
func main() {
strArray := []string{"a", "b","c"} //字符串数组
for i,v := range strArray {
fmt.Println(fmt.Sprintf("下标为:%d 值为:%s", i,v))
}
}
输出结果
下标为:0 值为:a
下标为:1 值为:b
下标为:2 值为:c
写一个死循环,变量a
会一直加1,当a的值大于3的时候则跳出循环:
package main
import "fmt"
func main() {
a := 1
for {
a++
fmt.Printf("a 的值为 : %d\n", a)
if a > 3 {
/* 使用 break 语句跳出循环 */
fmt.Printf("跳出循环")
break
}
}
}
输出结果
a 的值为 : 2
a 的值为 : 3
a 的值为 : 4
跳出循环
使用标号,可以指定想跳出的循环。
下面是未使用标记,普通break中断循环,只会中断当前层循环,不会中断外层,外层打印的值始终为11:
package main
import "fmt"
func main() {
for i := 1; i <= 2; i++ {
fmt.Printf("外层循环i: %d\n", i)
for j := 11; j <= 12; j++ {
fmt.Printf("内层循环j: %d\n", j)
break //不使用标记,则只会中断该层循环,不会中断外层循环
}
}
}
输出结果
外层循环i: 1
内层循环j: 11
外层循环i: 2
内层循环j: 11
下面是使用标记,指定中断外层循环,等于只循环执行了一次:
package main
import "fmt"
func main() {
re:
for i := 1; i <= 2; i++ {
fmt.Printf("外层循环i: %d\n", i)
for j := 11; j <= 12; j++ {
fmt.Printf("内层循环j: %d\n", j)
break re //使用标记,中断外层循环
}
}
}
输出结果
外层循环i: 1
内层循环j: 11
continue 是跳过当次循环执行后面的循环,而非中断循环
package main
import "fmt"
func main() {
for a := 1; a < 5; a++ {
if a == 3 { //a=3时执行continue跳过
continue
}
//a=3时不会执行打印操作
fmt.Printf("a 的值为 : %d\n", a)
}
}
执行结果
a 的值为 : 1
a 的值为 : 2
a 的值为 : 4
在循环嵌套时,continue也可以指定跳过的循环,用法与break一样
goto 可以直接转移到指定代码处进行执行。
下面的代码,当a=3时,会跳出for循环,直接执行LOOP所在行的代码:
package main
import "fmt"
func main() {
for a := 1; a < 5; a++ {
if a == 3 { //a等于3;执行goto跳出
goto LOOP
}
//a=3时不会执行打印操作
fmt.Printf("a 的值为 : %d\n", a)
}
LOOP:fmt.Printf("a等于3;执行goto跳出!")
}
执行结果
a 的值为 : 1
a 的值为 : 2
a等于3;执行goto跳出!
不建议使用goto,容易造成代码结构混乱
👇🏻欢迎关注公众号【曲鸟讲测试开发】,获取最新教程,面试经验、Python知识分享👇🏻
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/momoda118/article/details/121201795
内容来源于网络,如有侵权,请联系作者删除!