流程控制
选择结构(分支语句)
因为switch只能匹配固定值,推荐使用if-else做条件筛选
if-else判断
- package main
- import "fmt"
- func main() {
- var tmpA int
- fmt.Scanln(&tmpA)
- if tmpA >= 90 {
- fmt.Println("tmpA >= 90")
- } else if tmpA < 90 && tmpA >= 60 {
- fmt.Println("tmpA < 90 && tmpA >= 60")
- } else {
- fmt.Println("tmpA < 60")
- }
- }
复制代码 switch判断
switch语句执行的过程从上至下,知道找到匹配项,匹配项后面也不需要再加break,case之后默认添加break- package main
- import "fmt"
- // switch 后面如果什么都不跟,就会默认为bool类型,值为true
- func main() {
- var tmpA int
- fmt.Scanln(&tmpA)
- switch tmpA {
- case 90:
- fmt.Println("tmpA = 90")
- case 80:
- fmt.Println("tmpA = 80")
- default:
- fmt.Println("default")
- }
- }
复制代码 fallthrough穿透(和break相反)
switch默认情况下匹配成功后就不会执行其他case,如果我们需要执行后面的case,可以使用fall through穿透实现,它会强制执行后面的语句,并不会判断后面case表达式是否匹配- package main
- import "fmt"
- func main() {
- var tmpA int
- fmt.Scanln(&tmpA)
- switch tmpA {
- case 90:
- fmt.Println("tmpA = 90")
- fallthrough
- case 80:
- fmt.Println("tmpA = 80")
- fallthrough
- default:
- fmt.Println("default")
- }
- }
复制代码 循环结构(for循环)
- package main
- import "fmt"
- func main() {
- // 循环的条件判断没有括号,同样break和continue使用同c语言一样
- for i := 0; i < 10; i++ {
- if i == 4 {
- continue // 结束当前循环
- } else if i == 6 {
- break // 结束整个循环
- }
- fmt.Print(i)
- }
- }
复制代码 string
go语言中的字符串是一个字节的切片,可以通过将其内容封装在“”中来创建字符串,go语言中字符串编码兼容Unicode,且使用UTF-8编码,是一些字节的集合- package main
- import "fmt"
- func main() {
- // string 是不能被单独修改里面的某一位的
- str := "string example"
- fmt.Println(str)
- // 获取字符串长度
- fmt.Println("字符串长度为: ", len(str))
- // 获取指定的字节(直接获得的是Ascll编码)
- fmt.Println("获取指定的字节:", str[2])
- // 格式化输出指定字节
- fmt.Printf("获取指定的字节: %c \n", str[2])
- // 使用for循环遍历字符串
- for i := 0; i < len(str); i++ {
- fmt.Printf("遍历字符串: %c\n", str[i])
- }
- // for range循环,用于遍历数组以及切片....
- // i:字符串下标
- // v:当前下表对应的值,可以直接使用
- for i, v := range str {
- fmt.Printf("i = %d,v = %c \n", i, v)
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |