首页 > 编程语言 > 详细

go语言for循环语句

时间:2021-05-08 00:15:21      阅读:28      评论:0      收藏:0      [点我收藏+]

一、基本介绍

让你的代码可以重复执行

二、基本语法

for 循环变量初始化;循环条件;循环变量迭代 {
	循环体
}

说明:for循环执行的顺序:

  1. 循环变量初始化
  2. 循环条件
  3. 如果循环条件为真,执行循环体,若循环条件为假则退出循环
  4. 循环变量迭代
  5. 反复执行2,3, 4步骤

三、执行流程图

技术分享图片

四、注意细节

  1. 循环条件是返回布尔值的表达式
  2. for循环的第二种使用方式:
for 循环条件 {
	循环体
}

其实是将循环变量初始化和循环变量迭代写在其他位置
例子:

package main

import "fmt"

func main() {
	i := 0 // 循环变量初始化
	for i < 3 { // 循环变量条件
		fmt.Println("Hello, World!")
		i++ // 循环变量迭代
	}  	
}

输出结果:

Hello, World!
Hello, World!
Hello, World!
  1. for循环的第三种使用方法
for {
	循环体
}

上面的写法等价于for;;{},是一个无线循环,通常需要配合break语句使用。
例子:

package main

import "fmt"

func main() {
	i := 0 // 循环变量初始化
	for {
		if i < 3 { // 循环变量条件
			fmt.Println("Hello, World!")
		} else {
			break
		}
		i++ // 循环变量迭代
	}  	
}

输出结果

Hello, World!
Hello, World!
Hello, World!
  1. for-range方式,用于遍历字符串和数组。
  • 传统方式遍历带中文的字符串:
package main

import "fmt"

func main() {
	str := "asdfasd上海"
	for i := 0 ; i < len(str) ; i++ {
		fmt.Printf("下标为%d,值为%c\n",i,str[i])
	}	  	
}

输出结果:

下标为0,值为a
下标为1,值为s
下标为2,值为d
下标为3,值为f
下标为4,值为a
下标为5,值为s
下标为6,值为d
下标为7,值为?
下标为8,值为?
下标为9,值为?
下标为10,值为?
下标为11,值为μ
下标为12,值为·

可以发现中文为乱码,是按照字节来遍历的

  • 改进后传统方式遍历带中文的字符串:
package main

import "fmt"

func main() {
	str := "asdfasd上海"
	str2 := []rune(str)
	for i := 0 ; i < len(str2) ; i++ {
		fmt.Printf("下标为%d,值为%c\n",i,str2[i])
	}	  	
}

输出结果:

下标为0,值为a
下标为1,值为s
下标为2,值为d
下标为3,值为f
下标为4,值为a
下标为5,值为s
下标为6,值为d
下标为7,值为上
下标为8,值为海

将str转为[]rune,一个rune占4个字节,可以存放下中文

  • for-range遍历带中文的字符串
package main

import "fmt"

func main() {
	str := "asdfasd上海"
	for index , value := range str {
		fmt.Printf("index=%d,value=%c\n",index,value)
	}	  	
}

输出结果:

index=0,value=a
index=1,value=s
index=2,value=d
index=3,value=f
index=4,value=a
index=5,value=s
index=6,value=d
index=7,value=上
index=10,value=海

注意:由于go语言是按照utf-8编码的,一个中文占三个字节,for-range遍历字符串是按照字符来遍历的,而不是按照字节来的,所以遍历中"海"的下标是10.

  1. 对于go语言没有while和do-while语句,可以通过for来实现
  • for实现while
循环变量初始化
for {
	if 循环条件表达式 {
		break
	}
	循环体
	循环变量迭代
}

例子:

package main

import "fmt"

func main() {
	i := 0
	for {
		if i >= 10 {
			break
		}
		fmt.Println("Hello World!")
		i++
	}
}
  • for循环实现do-while
循环变量初始化
for {
	循环体
	循环变量迭代
	if 循环条件表达式 {
		break
	}
}

例子:

package main

import "fmt"

func main() {
	i := 0
	for {
		fmt.Println("Hello World!")
		i++
		if i >= 10 {
			break
		}	
	}
}

go语言for循环语句

原文:https://www.cnblogs.com/adong2021/p/14742379.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!