golang学习笔记9-分支结构

注:本人已有C,C++,Python基础,只写本人认为的重点。
程序有三大结构:顺序,分支,循环。顺序不用说,分支虽然语法和C类似,但还是有一些不同的地方。
首先要强调无论是分支还是循环结构,都有如下规则:
1.单个执行语句也要加大括号
2.条件表达式中可以定义变量,但只能使用省略var的自动推导,而且定义变量后必须跟分号,后面会有例子。

一、if else

语法如下:
if 条件1{
//语句1
}else if 条件2{
//语句2
}…
else if 条件n-1{
//语句n-1
}else{
//语句n
}
注意
1.else和else if必须跟在右大括号后面,不能写在行首
2.条件表达式中可以定义变量,如下:

if age := 20; age > 18 {
	fmt.Println("你已成年")
}

二、switch

语法如下:
switch 表达式{
case 表达式1,表达式2,…:
语句块1
case 表达式3,表达式4,…:
语句块2

default:
语句块n
}
一些细节:
1.case/switch后的表达式可以是常量,变量和有返回值的函数
2.case的表达式之间是或的关系,即只要有一个表达式成立,就执行语句块。
3.case中的表达式之间和case之间的表达式都不能重复,比如case 1:…;case 1,2:…;这样是错的。
4.switch后面可以不跟表达式,当作if else分支来处理,比如:

var age int = 10
switch {
case age == 10:
	fmt.Println("age == 10")
case age == 20:
	fmt.Println("age == 20")
default:
	fmt.Println("没有匹配到")
}

go专属switch机制:
1.switch穿透,fallthrough:fallthrough用于使当前case执行完后还能继续执行下一个case,必须放在case末尾,例:

var num int = 10
switch num {
case 10:
	fmt.Println("ok1")
	fallthrough //默认只能穿透一层
case 20:
	fmt.Println("ok2")
	fallthrough
case 30:
	fmt.Println("ok3")
default:
	fmt.Println("没有匹配到..")
}

注意:fallthrough必须放case末尾且只能有一个,只能穿透一层。
2.type swich,类型推断:switch语句还可以被用于来判断某个 interface 变量中实际指向的变量类型:

package main

import "fmt"

func main() {
	var x interface{}
	var y = 10.0
	x = y
	switch i := x.(type) {
	case nil:
		fmt.Printf("x的类型:%T", i)
	case int:
		fmt.Printf("x是int型")
	case func(int) float64:
		fmt.Printf("x是func(int)型")
	case bool, string, float64:
		fmt.Printf("x是bool,float64或string型")
	default:
		fmt.Printf("x类型未知")
	}
}

其中涉及的知识点不用管,只需记住这个语法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值