Golang 学习手册
  • 主页
  • 安装
  • 参考资料
  • Q&A
  • 基础
    • Hello,world!
    • 包
    • 变量
    • 常量
    • 类型
      • 整型
      • 浮点型
      • 复数
      • 布尔型
      • 字符
      • 字符串
      • 数组
      • 切片
      • 字典
      • 指针
      • 方法
      • 结构体
      • 接口
      • 自定义类型
    • 语法
      • 判断
      • 循环
      • 错误处理
    • 协程
      • 锁
      • 等待组
      • 通道
      • 上下文
    • 测试与分析
      • 单元测试
      • 性能测试
      • 性能分析
    • 编译
      • 条件编译
      • 交叉编译
  • 高级
    • 存储
      • 键值存储
        • Etcd
    • HTTP
      • http服务基础
      • Websocket
      • 开源框架
        • Beego
        • Echo
        • Gin
        • Iris
        • Revel
        • 框架对比
      • Kubernetes风格API框架
    • RPC
      • RPCX
      • GRPC
      • grpc-gateway
    • 连接分发器
    • TLS加密
    • 链路追踪
      • skywalking
  • 项目管理
    • 代码规范
    • 包管理
    • 文档
      • GoDoc
      • Markdown
      • Swagger
    • 仓库管理
      • 分支管理
      • 问题管理
      • 里程碑管理
      • 发布管理
    • 持续集成
      • CircleCI
      • TravisCI
由 GitBook 提供支持
在本页
  • if判断
  • switch判断

这有帮助吗?

在Git上编辑
  1. 基础
  2. 语法

判断

条件判断有两种方式,if和switch

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可以用于进行逻辑判断,其中包含了各种case。switch会顺序判断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.

上一页语法下一页循环

最后更新于4年前

这有帮助吗?