加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang - 流程控制

发布时间:2020-12-16 09:28:48 所属栏目:大数据 来源:网络整理
导读:目录 Golang - 流程控制 1. 选择结构 2. 循环结构 3. 跳转语句 Golang - 流程控制 1. 选择结构 if else语句: //package 声明开头表示代码所属包package mainimport ( "io/ioutil" "fmt")func main() { //常量 const filename = "abc.txt" //读取文件 contens

目录

  • Golang - 流程控制
    • 1. 选择结构
    • 2. 循环结构
    • 3. 跳转语句

Golang - 流程控制

1. 选择结构

if else语句:

//package 声明开头表示代码所属包
package main

import (
    "io/ioutil"
    "fmt"
)

func main() {
    //常量
    const filename = "abc.txt"

    //读取文件
    contens,err := ioutil.ReadFile(filename)

    // nil空
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Printf("%sn",contens)
    }

    // ;后边直接去判断和处理了
    if contens,err := ioutil.ReadFile(filename); err != nil {
        fmt.Println(err)
    } else {
        fmt.Printf("%sn",contens)
    }
}

switch语句:

//package 声明开头表示代码所属包
package main

import "fmt"

//函数传入成绩,得到级别 ABC
func grade(score int) string {
    //定义个空串
    g := ""

    //switch语句
    switch {
    case score < 0 || score > 100:
        g = "输入错误"
        //隐式加了一个break,匹配到了就结束
        //关键字fallthrough是继续往下跑
        fallthrough

    case score < 60:
        g = "F"
    case score < 80:
        g = "C"
    case score < 90:
        g = "B"
    case score <= 100:
        g = "A"
    }

    return g
}

func main() {
    fmt.Println(
        grade(0),grade(59),grade(60),grade(82),grade(99),grade(100),grade(-3),)
}

//F F C B A A F

2. 循环结构

for 语句:

//package 声明开头表示代码所属包
package main

import (
    "fmt"
    "time"
)


//1.无限死循环
func for1() {
    for {
        fmt.Println("爱天台,爱日耳曼战车")
        //睡1秒
        time.Sleep(1 * time.Second)
    }
}


//2.有限次循环
func for2() {
    for i := 1; i < 11; i++ {
        fmt.Println("爱天台,爱战车",i)
        //睡眠
        time.Sleep(500 * time.Millisecond)
    }
}


//3.if else
func for3() {
    for i := 1; i < 11; i++ {
        if i%5 == 0 {
            fmt.Println("爱阿根廷")
        } else if i%2 == 1 {
            fmt.Println("更爱战车")
        } else {
            fmt.Println("最爱是天台")
        }
        time.Sleep(500 * time.Millisecond)
    }
}


func main() {
    //for2()
    for3()
}

range 语句:

//package 声明开头表示代码所属包
package main

import "fmt"

func main() {
    s := "abc"

    //1.接收了下标,通过下标取值
    for i := range s {
        fmt.Printf("下标=%d,值=%cn",i,s[i])
    }

    //2.直接接收下标和元素值
    for i,c := range s {
        fmt.Printf("下标2=%d,值2=%cn",c)
    }

    //3.忽略下标
    for _,c := range s {
        fmt.Printf("值=%cn",c)
    }
}

//下标=0,值=a
//下标=1,值=b
//下标=2,值=c
//下标2=0,值2=a
//下标2=1,值2=b
//下标2=2,值2=c
//值=a
//值=b
//值=c

3. 跳转语句

break和continue

//package 声明开头表示代码所属包
package main

import "fmt"

func main() {
    for i :=0; i<5; i++{
        if 2==i{
            //break
            continue
        }
        fmt.Println(i)
    }
}

//0
//1
//3
//4

goto:可以跳转到指定的位置运行,注意是跳转到当前函数内

//package 声明开头表示代码所属包
package main

import "fmt"

func main() {
    for i :=0; i<5; i++{
        fmt.Println(i)

        //关键字goto
        goto LABEL
    }
    fmt.Println("程序结束")
LABEL:
    fmt.Println("程序over")
}

//0
//程序over

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读