首页后端开发其他后端知识Go循环语句有几种,循环控制语句是怎样的

Go循环语句有几种,循环控制语句是怎样的

时间2024-03-26 17:02:04发布访客分类其他后端知识浏览323
导读:这篇文章主要介绍了title,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望大家通过这篇文章可以有所收获。 一、循环语句 1. 普通循环 1)语法 for init; condition; post...
这篇文章主要介绍了title,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望大家通过这篇文章可以有所收获。


一、循环语句

1. 普通循环

1)语法

for init; condition; post { }

  • init(可选):给控制变量赋初值;
  • condition(可选):控制条件(不填的时候等于while True);
  • post(可选):控制变量增量或减量;

2)举例

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("死循环")
	}

}

2. 循环嵌套

package main

import "fmt"

func main() {


	for {
 //省略condition
		fmt.Println("死循环")
	}

}

输出结果

(1到10的数字之和)x10: 550

3. range循环

用于对字符串、数组、切片等进行迭代输出元素:

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

二、循环控制语句

1.Break-中断(跳出)循环

1)中断(跳出)循环

写一个死循环,变量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
跳出循环

2)指定想中断(跳出)的循环(嵌套循环中使用)

使用标号,可以指定想跳出的循环。

下面是未使用标记,普通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

2.Continue-跳过当次循环

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一样

3.goto-条件转移

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,容易造成代码结构混乱


以上就是关于Go循环语句有几种,循环控制语句是怎样的的介绍,本文内容仅供参考,有需要的朋友可以借鉴了解看看,希望对大家学习或工作,想要了解更多欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Go循环语句有几种,循环控制语句是怎样的
本文地址: https://pptw.com/jishu/653636.html
HTML5中绘制动态径向渐变的方法及代码是什么 php安装grpc扩展的操作和步骤是什么?

游客 回复需填写必要信息