• Go if_else语句


    8. if-else 语句

    if 是条件语句。if 语句的语法是

    Copy
    if condition {  
    }
    

    如果 condition 为真,则执行 {} 之间的代码。

    不同于其他语言,例如 C 语言,Go 语言里的 { } 是必要的,即使在 { } 之间只有一条语句。

    if 语句还有可选的 else ifelse 部分。

    Copy
    if condition {  
    } else if condition {
    } else {
    }
    

    if-else 语句之间可以有任意数量的 else if。条件判断顺序是从上到下。如果 ifelse if 条件判断的结果为真,则执行相应的代码块。 如果没有条件为真,则 else 代码块被执行。

    让我们编写一个简单的程序来检测一个数字是奇数还是偶数。

    Copy
    package main
    
    import (  
        "fmt"
    )
    
    func main() {  
        num := 10
        if num % 2 == 0 { //checks if number is even
            fmt.Println("the number is even") 
        }  else {
            fmt.Println("the number is odd")
        }
    }
    

    if num%2 == 0 语句检测 num 取 2 的余数是否为零。 如果是为零则打印输出 "the number is even",如果不为零则打印输出 "the number is odd"。在上面的这个程序中,打印输出的是 the number is even

    if 还有另外一种形式,它包含一个 statement 可选语句部分,该组件在条件判断之前运行。它的语法是

    Copy
    if statement; condition {  
    }
    

    让我们重写程序,使用上面的语法来查找数字是偶数还是奇数。

    Copy
    package main
    
    import (  
        "fmt"
    )
    
    func main() {  
        if num := 10; num % 2 == 0 { //checks if number is even
            fmt.Println(num,"is even") 
        }  else {
            fmt.Println(num,"is odd")
        }
    }
    

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

    让我们再写一个使用 else if 的程序。

    Copy
    package main
    
    import (  
        "fmt"
    )
    
    func main() {  
        num := 99
        if num <= 50 {
            fmt.Println("number is less than or equal to 50")
        } else if num >= 51 && num <= 100 {
            fmt.Println("number is between 51 and 100")
        } else {
            fmt.Println("number is greater than 100")
        }
    
    }
    

    在上面的程序中,如果 else if num >= 51 && num <= 100 为真,程序将输出 number is between 51 and 100

    一个注意点

    else 语句应该在 if 语句的大括号 } 之后的同一行中。如果不是,编译器会不通过。

    让我们通过以下程序来理解它。

    Copy
    package main
    
    import (  
        "fmt"
    )
    
    func main() {  
        num := 10
        if num % 2 == 0 { //checks if number is even
            fmt.Println("the number is even") 
        }  
        else {
            fmt.Println("the number is odd")
        }
    }
    

    在上面的程序中,else 语句不是从 if 语句结束后的 } 同一行开始。而是从下一行开始。这是不允许的。如果运行这个程序,编译器会输出错误,

    Copy
    main.go:12:5: syntax error: unexpected else, expecting }
    

    出错的原因是 Go 语言的分号是自动插入。

    在 Go 语言规则中,它指定在 } 之后插入一个分号,如果这是该行的最终标记。因此,在if语句后面的 } 会自动插入一个分号。

    实际上我们的程序变成了

    Copy
    if num%2 == 0 {  
          fmt.Println("the number is even") 
    };  //semicolon inserted by Go
    else {  
          fmt.Println("the number is odd")
    }
    

    分号插入之后。从上面代码片段可以看出第三行插入了分号。

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

    我已经重写了程序,将 else 语句移动到 if 语句结束后 } 的后面,以防止分号的自动插入。

    Copy
    package main
    
    import (  
        "fmt"
    )
    
    func main() {  
        num := 10
        if num%2 == 0 { //checks if number is even
            fmt.Println("the number is even") 
        } else {
            fmt.Println("the number is odd")
        }
    }
    

    现在编译器会很开心,我们也一样 ?。

    if_else语句

    package main
    
    import "fmt"
    
    //if-else
    /*  注意:条件后的括号,不能再下一行
    if 条件{
    } else if 条件 {
    } else {
    }
    
     */
    func main() {
    
        //if-else if--else
        a:=10;
        if a>10 {
            fmt.Println("大于10");
        }else if a<10{
            fmt.Println("小于10")
        }else {
            fmt.Println("等于10")
        }
    }
    View Code
    每天逼着自己写点东西,终有一天会为自己的变化感动的。这是一个潜移默化的过程,每天坚持编编故事,自己不知不觉就会拥有故事人物的特质的。 Explicit is better than implicit.(清楚优于含糊)
  • 相关阅读:
    springMVC+MyBatis+Spring+maven 整合(1)
    mysql.zip免安装版配置
    5.6 循环依赖
    5.5 准备创建bean
    5.4 获取单例
    SQL Server(九)——事务
    SQL Server(七)——存储过程
    SQL Server(八)——触发器
    SQL Server(六)——索引、视图和SQL编程
    SQL Server(五)——常用函数 转
  • 原文地址:https://www.cnblogs.com/kylin5201314/p/14944784.html
Copyright © 2020-2023  润新知