欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Go语言--语法基础5--基本数据类型--类型转换

Go语言--语法基础5--基本数据类型--类型转换

2025/5/19 15:02:25 来源:https://blog.csdn.net/m0_64734557/article/details/148051208  浏览:    关键词:Go语言--语法基础5--基本数据类型--类型转换
Go 编程语言中 if 条件语句的语法如下:

1、基本形式

if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
}
If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false
不执行。
package main
import "fmt"
func main() {
var a int = 10
if a < 20 {
fmt.Printf("a 小于 20\n" )
}
fmt.Printf("a 的值为 : %d\n", a)
}
以上代码执行结果为:
a 小于 20
a 的值为 : 10

2if...else 语句的语法如下:

if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
} else {
/* 在布尔表达式为 false 时执行 */
}
If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false
执行 else 语句块。
package main
import "fmt"
func main() {
var a int = 100
if a < 20 {
fmt.Printf("a 小于 20\n" )
} else {
fmt.Printf("a 不小于 20\n" )
}
fmt.Printf("a 的值为 : %d\n", a)
}

以上代码执行结果为:

a 不小于 20
a 的值为 : 100

3 Goif语句嵌套形式如下:

阶梯嵌套形式
if 布尔表达式 1 {
/* 在布尔表达式为 true 时执行 */
} else if 布尔表达式 2 {
/* 在布尔表达式 2 true 时执行 该位置可以多层
嵌套 */
} else if 布尔表达式 3 {
/* 在布尔表达式 3 true 时执行 该位
置可以多层嵌套 */
} else if 布尔表达式 4 {
/* 在布尔
表达式 4 true 时执行 该位置可以多层嵌套 */
} else {
/*
布尔表达式 2 false 时执行 */
}
if ...else... 的多层嵌套,建议嵌套的深度不要超过四层。
Go 语言 switch 多分支语句
switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是
唯一的,从上直下逐一测试,
直到匹配为止。
switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也
需要再加 break
语法
Go 编程语言中 switch 语句的语法如下:
switch var {
case val1 :
...
case val2 :
...
default:
...
}
变量 var1 可以是任何类型,而 val1 val2 则可以是同类型的任意
值。类型不被局限于常量或整数,
但必须是相同的类型;或者最终结果为相同类型的表达式。
您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:
case val1, val2, val3
实例:
package main
import "fmt"
func main() {
var grade string = "B"
var marks int = 90
switch marks {
case 90: grade = "A"
case 80: grade = "B"
case 70 : grade = "C"
case 60: grade = “D”
case 50: grade ="E"
default: grade = "F"
}
switch {
case grade == "A" :
fmt.Printf("优秀!\n" )
case grade == "B", grade == "C" :
fmt.Printf("良好\n" )
case grade == "D" :
fmt.Printf("及格\n" )
case grade == "E":
fmt.Printf("不及格\n" )
default:
fmt.Printf("差\n" )
}
fmt.Printf("你的等级是 %s\n", grade )
}
以上代码执行结果为:
优秀!
你的等级是 A
switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实
际存储的变量类型。
Type Switch 语法格式如下:
switch x.(type) {
case type:
statement(s)
case type:
statement(s)
/* 你可以定义任意个数的case */
default: /* 可选 */
statement(s)
}
实例
package main
import "fmt"
func main() {
var x int
x = 100
switch i := x.(type) {
case nil:
fmt.Printf(" x 的类型 :%T",i)
case int:
fmt.Printf("x 是 int 型")
case float64:
fmt.Printf("x 是 float64 型")
case func(int) float64:
fmt.Printf("x 是 func(int) 型")
case bool, string:
fmt.Printf("x 是 bool 或 string 型" )
default:
fmt.Printf("未知型")
}
}
以上代码执行结果为:
x 的类型 :<nil>
补充:
fallthrough 是配合 switch 使用的, golang 里面每个 case 默认都有一个
break
fallthrough 可以取消这个默认的 break, 并且执行下一个 case 而不用判断
下个 case
如果没有 case 会执行 default 的内容。
比如:
package main
import (
"fmt"
)
func main() {
a := 2
switch a {
case 1:
fmt.Println("a=1")
case 2:
fmt.Println("a=2")
fallthrough
case 3:
fmt.Println("a=3")
fallthrough
case 4:
fmt.Println("a=4")
fallthrough
default:
fmt.Println("default")
}
}
执行结果:
a=2
a=3
a=4
default

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词