前言
循环语句,是基础语法中最重要的一部分,可以实现代码的反复执行。
一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。
与其它主流编程语言不同的的是,Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构。
for 循环简单语句
语法:
for condition { }
for循环简单版
1) 无限循环
package main
import "fmt"
func main() {
for true{
fmt.Println("helloworld")
}
}
2)无限循环中可以跳出
输入用户名密码,如果输入错了继续输入
package main
import "fmt"
func main() {
for true {
var user string
var pass string
fmt.Println("请输入用户名和密码")
fmt.Scanln(&user, &pass)
if user == "laoxin" && pass == "123" {
fmt.Println("登陆成功")
break
} else {
fmt.Println("登陆失败,请重新输入密码")
}
}
}
4)有限循环
package main
import "fmt"
func main() {
var n = 0
for n < 5 {
fmt.Println("helloworld")
n++
}
}
执行结果
package main
import "fmt"
func main() {
var i = 0
for i < 3 {
var user string
var pass string
fmt.Println("请输入用户名和密码")
fmt.Scanln(&user, &pass)
if user == "laoxin" && pass == "123" {
fmt.Println("登陆成功")
break
} else {
fmt.Println("登陆失败,请重新输入密码")
}
i++
fmt.Println(i)
}
fmt.Println("登陆失败已经超过三次,你的密码被锁定")
}
但是这里要知道,最后一句话无论执行成功与否都会执行
如果想让他不执行:
package main
import "fmt"
func main() {
var i = 0
for i < 3 {
var user string
var pass string
fmt.Println("请输入用户名和密码")
fmt.Scanln(&user, &pass)
if user == "laoxin" && pass == "123" {
fmt.Println("登陆成功")
break
} else {
fmt.Println("登陆失败,请重新输入密码")
}
i++
fmt.Println(i)
//一定要把判断写作for循环内,因为出去循环,i失效
if i == 3 {
fmt.Println("登陆失败已经超过三次,你的密码被锁定")
}
}
}
练习1
计算: 1+2+3+。。。+100
import "fmt"
func main() {
var total = 0
var num = 1
for num <= 100 {
fmt.Println(total, num)
total = num + total
num++
fmt.Println(total)
}
}
练习2
循环的标准体
循环的三要素
- 声明初始变量
- 变量表达式
- 步进语句
for init;condition;post {
// 循环体语句
}
init: 初始化语句,一般为赋值表达式,给控制变量赋初值;
condition:条件判断,一般是关系表达式或逻辑表达式,循环控制条件;
post: 步进语句,一般为赋值表达式,给控制变量增量或减量。
拿一个案例来看看我们的脚本的标准体的写法“:
举例: 打印1-100中的偶数
package main
import "fmt"
func main() {
var num = 1 //初始化语句(init)
for num <= 100 {
//条件判断
if num%2 == 0 {
fmt.Println(num)
}
num++ //步进语句
}
}
这是我们常用的写法,但是官网推荐的写法,我们来对应下:
package main
import "fmt"
func main() {
for num := 1; num <= 100; num++ {
if num%2 == 0 {
fmt.Println(num)
}
}
}
执行顺序:
- 定义 num=1
- 判断num是否小于100
- 执行循环体 (条件判断)
- num++ 步进
强制退出循环机制
break continue
用的最多的是break, 比较难理解的是continue
break
遇到88 就退出循环
package main
import "fmt"
func main() {
for num := 1; num <= 100; num++ {
if num == 88 {
fmt.Println(num)
break
}
}
}
执行结果:
continue
遇到8的时候跳出当前循环
package main
import "fmt"
func main() {
for num := 1; num <= 10; num++ {
if num == 8 {
continue //退出当前循环
}
fmt.Println(num)
}
}
总结
for循环学完之后,基础语法算是基本学会了,后面把数组的一些用法学好,就可以利用基础语法做一些小的项目了。
在没学框架之前,小的项目都可以做。框架相当于封装,也就是自动化。