内容简介: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) }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 008.Python循环for循环
- 006.Python循环语句while循环
- 007.Python循环语句while循环嵌套
- 观点 | 激励循环——加密算法如何实际修复现有激励循环
- 数组常见的遍历循环方法、数组的循环遍历的效率对比
- Python 循环语句
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Node.js:来一打 C++ 扩展
死月 / 电子工业出版社 / 2018-6-1 / 109
Node.js 作为近几年新兴的一种编程运行时,托 V8 引擎的福,在作为后端服务时有比较高的运行效率,在很多场景下对于我们的日常开发足够用了。不过,它还为开发者开了一个使用C++ 开发 Node.js 原生扩展的口子,让开发者进行项目开发时有了更多的选择。 《Node.js:来一打 C++ 扩展》以 Chrome V8 的知识作为基础,配合 GYP 的一些内容,将教会大家如何使用 Node......一起来看看 《Node.js:来一打 C++ 扩展》 这本书的介绍吧!