• 语言基础之流程控制if分支


    语言基础之流程控制if分支

    一、if else(分支结构)

    if条件判断基本写法

    Go语言中if条件判断的格式如下:

    if 表达式1 {
        分支1
    } else if 表达式2 {
        分支2
    } else{
        分支3
    }
    

    当表达式1的结果为true时,执行分支1,否则判断表达式2,如果满足则执行分支2,都不满足时,则执行分支3。 if判断中的else ifelse都是可选的,可以根据实际需要进行选择。

    Go语言规定与if匹配的左括号{必须与if和表达式放在同一行,{放在其他位置会触发编译错误。 同理,与else匹配的{也必须与else写在同一行,else也必须与上一个ifelse if右边的大括号在同一行。

    举个例子:

    func ifDemo1() {
        score := 65
        if score >= 90 {
            fmt.Println("A")
        } else if score > 75 {
            fmt.Println("B")
        } else {
            fmt.Println("C")
        }
    }
    

    由于 if{…} else {…} 是一个单独的语句,它的中间不应该出现分号。因此,需要将 else 语句放置在 } 之后处于同一行中。

    将 else 语句移动到 if 语句结束后 } 的后面,以防止分号的自动插入。

    二、if条件判断特殊写法

    if statement; condition {  
        
    }
    

    if条件判断还有一种特殊的写法,可以在 if 表达式之前添加一个执行语句,再根据变量值进行判断,举个例子:

    func ifDemo2() {
        if score := 65; score >= 90 {
            fmt.Println("A")
        } else if score > 75 {
            fmt.Println("B")
        } else {
            fmt.Println("C")
        }
        // fmt.Println(score) # 报错
    }
    // score 
    

    在上面的程序中,scoreif 语句中进行初始化,score 只能从 ifelse 中访问。也就是说 score 的范围仅限于 if else 代码块。如果我们试图从其他外部的 if 或者 else 访问 score,编译器会不通过。

    思考题: 上下两种写法的区别在哪里? 作用域不同,特殊写法中声明的score只能在if判断内部使用

    三、总结

    1. 单分支结构,
    2. 多分支结构
    3. 条件的变形使用
    4. 注意分支的结构编写方式
    if 条件{
      内容
    }else if 条件{
      
    }else{
      
    }
    
    
    # 特殊的
    if 初始化;条件{
      内容
      初始化的内容只在内部有效
    }
    
    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    不能对同一张表先查询后更新的解决方案
    Maven的一些常用命令
    在sql中使用函数,遇到net.sf.jsqlparser.parser.ParseException异常
    2017年秋季遇到的兼容问题总结
    最近关于css样式重构的一点心得体会
    CSS Modules使用方法
    上传图片获取base64位编码
    移动端自适应莫名其妙撑开高度的问题
    解决ie8下页面刚出现时候的晃动问题
    解决ie8下面placeholder显示问题
  • 原文地址:https://www.cnblogs.com/randysun/p/15409392.html
Copyright © 2020-2023  润新知