4.3 Go for
4.3 Go for
Go的for循环是一个循环控制结构,可以执行循环次数。
语法
package main import "fmt" func main() { //创建方式一,循环条件是布尔值表达式 num := 0 for num <= 10 { fmt.Println("我说老男孩golang 你说哟", num) num++ } //创建方式二,无限循环,go不存在while语法 num1 := 0 for { if num1 <= 10 { fmt.Println("人生苦短 说go就go", num1) } else { break //超出了就终止这个for循环 } num1++ //等于num1=num1+1 } fmt.Println("----------") //创建方式三 for-range 用于遍历字符串、数组 var teacher = "wu pei qi" //字符串可以用索引取值,注意格式化输出的时候,要输出码值对应的字符 %c 格式化 for i := 0; i < len(teacher); i++ { fmt.Printf("%c\n", teacher[i]) } fmt.Println("----------") //创建方式四 student := "chaoge牛逼" //for range遍历,是按照字符方式遍历,支持中文 for k, v := range student { fmt.Printf("索引:%v 值:%c\n", k, v) } fmt.Println("----------") //传统遍历字符串是按字节遍历,汉字对应utf8编码是3个字节 var class1 string = "python全栈开发班" //必须转化为[]rune切片类型,方可使用 class2 := []rune(class1) for i := 0; i < len(class2); i++ { fmt.Printf("%c\n", class2[i]) } }
打印乘法表,层数由用户输入
package main import "fmt" func main() { var num int fmt.Println("请输入层数:") fmt.Scanln(&num) //i表示层数 for i := 1; i <= num; i++ { //j表示每层打印多少 for j := 0; j <= i; j++ { fmt.Printf("%v * %v = %v \t", j, i, j*i) } fmt.Println() } }
三次登录
package main import "fmt" func main() { var name string var pwd string var logincache = 3 //循环限制三次登录 for i := 1; i <= 3; i++ { fmt.Println("请输入账号:") fmt.Scanln(&name) fmt.Println("请输入密码:") fmt.Scanln(&pwd) if name == "alex" && pwd == "alex3714" { fmt.Println("欢迎鸡汤王归来!!") break } else { logincache-- //每次登录失败减一 fmt.Printf("你还有%v次机会尝试,老铁\n", logincache) } } }