golang语言学习第三课 条件语句

if 是一个条件语句。if 语句的语法为:

if condition {  
}

 与其他语言不同, 其他语言 if后面有()括号,但是go语言是没有的。

if 语句后面可以接可选的 else if 和 else 语句:

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

  注意: 务必在 } 后半个花括号后面跟着 else关键词,如果换行跟着 else是错误的。无法通过编译。

如下代码是错误的,无法通过编译的:

if condition {  
} 
else {       //错误,严重错误,else关键词前面务必保持有} 后部分的花括号,否则无法通过编译。
}

另外:

if 的条件里可以赋值
if 的条件里赋值的变量作用域就在这个if语句里。 详见下面代码:

package main

import (
    "fmt"
    "io/ioutil"
)

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

    if contents, err := ioutil.ReadFile(filename); err != nil {    //if的条件里可以赋值
        fmt.Println(err)
    } else {
        fmt.Printf("%s\n", contents)         //if的条件里赋值的变量作用域就在这个if语句里。
    }
}


分支选择语句
switch...case..(其实我个人感觉把switch关键词改成select更合适,英文意思:在哪种情况选择哪个。)

具体语法看下面的代码

func eval(a,b int, op string) int {
    var result int
    switch op {
    case "+":
        result =a+b
    case "-":
        result =a-b
    case "*":
        result =a*b
    case "/":
        result =a/b
    default:
        panic("unsupported operator:" +op)
    }
    return result
}

需要注意:switch会自动break,除非使用fallthrough

switch后可以没有表达式,只需在case里面加入条件就可以了

func grade(score int) string {
    switch {
    case score <60:
        return "F"
    case score <80:
        return "C"
    case score <90:
        return "B"
    default:
        return "A"
    }
}

猜你喜欢

转载自www.cnblogs.com/golangxiong/p/10166419.html