Go语言入门2(流程控制,string)
流程控制
选择结构(分支语句)
因为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)
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现