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)
        }
    }
}
 
posted @ 2019-07-27 21:25  笑得好美  阅读(211)  评论(0编辑  收藏  举报