Go语言入门【3】条件语句

条件语句

条件语句就是根据不同的条件执行不同的代码。

示意图:

示意图

if语句

if语句用于判断某个条件是否满足,当条件满足时则执行if语句块中的代码。

语法:

if 条件表达式 {
   // 当条件表达式为true时执行
}

代码示例:

package main

import "fmt"

func main() {
	score := 90
	if score >= 90 {
		fmt.Println("优秀")
	}
}

因为表达式score >= 90的结果为true,则会在控制台打印出优秀

运行结果:

运行结果

if…else

在if条件语句中,如果表达式为true则会执行if语句块中的代码,在if后还可以增加else语句块,则表示当if条件为false时执行else中的代码。

语法:

if 条件表达式 {
   // 当条件表达式为true时执行
} else {
    // 当条件表达式为false时执行
}

代码示例:

package main

import "fmt"

func main() {
	score := 80
	if score >= 90 {
		fmt.Println("优秀")
	} else {
		fmt.Println("一般")
	}
}

score = 80,由于表达式score >= 90结果为false,则不会执行if中的语句块,会转而执行else中的语句块。

运行结果:

运行结果

除了直接使用if...else之外,还可以在else后面继续增加if条件判断。

语法:

if 条件表达式1 {
   // 当条件表达式1为true时执行
} else if 条件表达式2 {
    // 当条件表达式2为true时执行
} else {
    // 当条件表达式1和2都不为true时执行
}

代码示例:

package main

import "fmt"

func main() {
	score := 80
	if score >= 90 {
		fmt.Println("优秀")
	} else if score >= 80 {
		fmt.Println("良好")
	} else {
		fmt.Println("一般")
	}
}

运行结果:

运行结果

if...else if判断没有数量限制,可一直添加else if判断,但是在实际开发中不建议写太多,如果有特别多得条件需要判断,可使用switch进行判断

if嵌套

if嵌套表示可以在if语句块中添加if判断

语法:

if 条件表达式1 {
    if 条件表达式2 {
        // 当条件表达式2为true时执行
    } else {
        // 当条件表达式2为false时执行
    }
} else {
    // 当条件表达式1为false时执行
}

代码示例:

package main

import "fmt"

func main() {
	score := 90
	if score >= 90 {
		if score >= 95 {
			fmt.Println("非常优秀")
		} else {
			fmt.Println("优秀")
		}
	} else {
		fmt.Println("一般")
	}
}

score = 90,则第一层if判断score >= 90为true,则进入到第一层if语句块中,在第一层语句块中score >= 95为false,则执行else中的代码,最后输出为优秀。

运行结果:

运行结果

if嵌套也可以无限制的嵌套,但是在实际开发中同样不建议嵌套太多层。

switch

switch语句是根据变量的值执行不同的case,在执行的过程中,会从第一个case开始判断,直到碰到一个符合条件的case为止,然后执行该case中的语句,不同于java的是不需要在每一个case中添加break语句,go语言默认情况下case后面自带break语句。

语法:

switch 变量 {
    case 变量1:
        // 当变量和变量1相等时执行
    case 变量2:
        // 当变量和变量2相等时执行
    default:
        // 当没有符合的case时执行
}

代码示例:

package main

import "fmt"

func main() {
	score := 80
	switch score {
		case 90:fmt.Println("优秀")
		case 80:fmt.Println("良好")
		case 70:fmt.Println("一般")
		default:fmt.Println("默认")
	}
}

运行结果:

运行结果

switch的变量可以时任意类型,而case的变量可以是相同类型的任意值,类型不局限,但是switch和case的类型必须时相同的类型,同样case还可以为表达式。

代码示例:

package main

import "fmt"

func main() {
	score := 80
	switch {
		case score >= 90:fmt.Println("优秀")
		case score >= 80:fmt.Println("良好")
		case score >= 70:fmt.Println("一般")
		default:fmt.Println("默认")
	}
}

当case为表达式时,则switch中就不需要再写变量。

运行结果:

运行结果

fallthrough

由于在go语言中每一个case后面都会默认加上break,所以每次匹配都执行其中的一个case,但是如果需要执行后面的case,则可以使用fallthrough,使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。

代码示例:

package main

import "fmt"

func main() {
	score := 80
	switch {
		case score >= 90:
			fmt.Println("优秀")
			fallthrough
		case score >= 80:
			fmt.Println("良好")
			fallthrough
		case score >= 70:
			fmt.Println("一般")
			fallthrough
		default:fmt.Println("默认")
	}
}

由于在每个case后面都增加了fallthrough,则当case score >= 80匹配时,除了执行该case中的语句外,还会直接之后它后面的所有case,并且不会判断case是否为true。

运行结果:

运行结果

关注持续更新……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CodeJR

如果觉得有用请赏一个呗!

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

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

打赏作者

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

抵扣说明:

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

余额充值