内容简介:1、循环条件是返回一个布尔值的表达式2、 for 循环的第二种使用方式示例:
- 快速入门
for i := 1; i <= 10; i++ {
fmt.Println(i)
}
-
流程图
for循环注意事项和细节
1、循环条件是返回一个布尔值的表达式
2、 for 循环的第二种使用方式
for 循环判断条件 { //循环执行语句
}
//将变量初始化和变量迭代写到其它位置
示例:
j := 1
for j <= 10 {
fmt.Println("hello....", j)
j++
}
3、 for 循环的第三种使用方式
for {
//循环语句
}
等价: for ; ; { } 是个无限循环,需要配合 break 语句来用
示例:
k := 1
for { //等价 for ; ; { }
if k <= 10 {
fmt.Println("ok...", k)
} else {
break //跳出循环
}
k++
}
3、Golang 供 for-range 的方式,可以方便遍历 字符串和数组 (注: 数组的遍历,我们放到讲数组 的时候再讲解) ,案例说明如何遍历字符串。
- 字符串遍历方式 1-传统方式
var str string = "hello,steven qin"
for i := 0; i < len(str); i++ {
fmt.Printf("%c \n", str[i])
}
-
for-range方式
var str string = "abc~defg"
for index, val := range str {
fmt.Printf("index=%d , val=%c \n", index, val)
}
细节讨论
1、 如果我们的 字符串含有中文 ,那么传统的遍历字符串方式,就是错误,会出现乱码。原因是传统的对字符串的遍历是按照字节来遍历,而 一个汉字在 utf8 编码是对应 3 个字节 。
- 如何解决 需要要将
str转成[]rune切片.=> 体验一把
var str string = "hello,steven qin!哈哈"
str2 := []rune(str) //转为切片类型
for i := 0; i < len(str2); i++ {
fmt.Printf("%c \n", str2[i])
}
2、 for-range方法不受影响
var str string = "abc~defg,哈哈"
for index, val := range str {
fmt.Printf("index=%d , val=%c \n", index, val)
}
练习
1、打印 1~100 之间所有是 9 的倍数的整数的个数及总和
func main() {
var max uint64 = 100
var count uint64 = 0
var sum uint64 = 0
var i uint64 = 1 //i的类型要和max一致
for ; i <= max; i++ {
if i%9 == 0 {
count++
sum += i
}
}
fmt.Printf("count=%v sum=%v\n", count, sum) //%v为值的默认格式表示
}
2、练习2
var n int = 10
for i := 0; i <= n; i++ {
fmt.Printf("%v + %v = %v\n", i, n-i, n)
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
腾讯网UED体验设计之旅
任婕 等 / 电子工业出版社 / 2015-4 / 99.00元
《腾讯网UED体验设计之旅》是腾讯网UED的十年精华输出,涵盖了丰富的案例、极富冲击力的图片,以及来自腾讯网的一手经验,通过还原一系列真实案例的幕后设计故事,从用户研究、创意剖析、绘制方法、项目管理等实体案例出发,带领读者经历一场体验设计之旅。、 全书核心内容涉及网媒用户分析与研究方法、门户网站未来体验设计、H5技术在移动端打开的触控世界、手绘原创设计、改版迭代方法、文字及信息图形化设计、媒......一起来看看 《腾讯网UED体验设计之旅》 这本书的介绍吧!