判断

条件判断有两种方式,ifswitch

if判断

if 语句的语法结构:

if 条件判断 {
    ...
}else if 条件判断 {
    ...
}else {
    ...
}

例子:If条件判断

package main

import (
	"fmt"
)

func main() {
	CheckScore(59)

	CheckScore(65)

	CheckScore(88)
}

func CheckScore(score int) {
	// 通过if语句判断不同score范围时的输出信息
	if score < 60 {
		fmt.Println("bad")
	} else if score >= 60 && score < 80 {
		fmt.Println("normal")
	} else {
		fmt.Println("good")
	}
}

以上代码的执行结果:

bad
normal
good

switch判断

switch可以用于进行逻辑判断,其中包含了各种caseswitch会顺序判断case是否成立,当case条件成立时会执行case体中的内容。当所有的case都不成立时,会执行default体中的内容。可以通过关键字fallthrough连带执行下一个case体中的内容,不管case条件是否成立。在必要时可以通过关键字break跳出switch语句

无判断变量的switch语句会逐个遍历case体中的条件判断按顺序进行比较,如果条件成立时就会执行其中的逻辑,语法结构:

switch {
case 条件判断1:
    ...
case 条件判断2:
    ...
default:
    ...
}

例子:无判断变量的switch语句

package main

import (
	"fmt"
)

func main() {
	CheckScore(59)

	CheckScore(65)

	CheckScore(88)
}

func CheckScore(score int) {
	// 通过switch语句判断不同score范围时的输出信息
	switch {
	case score < 60:
		fmt.Println("bad")
	case score >= 60 && score < 80:
		fmt.Println("normal")
	default:
		fmt.Println("good")
	}
}

以上代码的执行结果:

bad
normal
good

有判断变量的switch语句用于进行确切值的判断,会逐个与其中的case常量按顺序进行比较,如果值相同就会执行其中的逻辑,语法结构:

switch 变量 {
case 常量1:
    ...
case 常量2:
    ...
default:
    ...
}

例子:有判断变量的switch条件判断

package main

import (
	"fmt"
)

func main() {
	switchColor("red")

	switchColor("yellow")

	switchColor("blue")

	switchColor("black")
}

func switchColor(color string) {
	// 通过switch语句判断不同color时的输出信息
	switch color {
	case "yellow":
		fmt.Println("banana is yellow.")
		// 使用fallthrough可以连带执行下一个case体中的逻辑
		fallthrough
	case "red":
		fmt.Println("apple is red.")
	case "blue":
		fmt.Println("sky is blue.")
		// 使用break跳出switch体
		if true {
			break
		}
		fmt.Println("you will never see me ")
	default:
		fmt.Println("i have no idea what color it is.")

	}
}

以上代码的执行结果:

apple is red.
banana is yellow.
apple is red.
sky is blue.
i have no idea what color it is.

最后更新于