Go学习笔记-流程控制
Go流程控制
*我们经常需要代码在满足一定条件时进行执行,或者需要重复执行代码多次,此时需要选择条件语句(if-else)或选择语句(switch case)及循环语句(for)
一. if 的语法
方式一:
if condition1 {
}
方式二:
if condition1 {
}else {
}
方式三:
if condition1{
}else if condition2 {
}else if condition3{
}else {
}
package main
import "fmt"
func main() {
//老婆的想法
fmt.Println("老婆的想法")
fmt.Println("买十个包子")
var yes string
fmt.Println("有卖西瓜的吗?")
fmt.Scan(&yes)
if yes == "Y" || yes == "y" {
fmt.Println("买一个西瓜")
}
fmt.Println("老公的想法")
if yes == "Y" || yes == "y" {
fmt.Println("买一个包子")
} else {
fmt.Println("买十个包子")
}
else-if
package main
import "fmt"
func main() {
var score int
fmt.Print("请输入成绩:")
fmt.Scan(&score)
if score >= 90 {
fmt.Println("A")
} else {
if score >= 80 {
fmt.Println("B")
} else {
if score <= 70 {
fmt.Println("C")
}
}
}
二. switch
package main
import "fmt"
func main(){
var yes string
fmt.Print("老婆的想法:")
fmt.Print("有卖西瓜的吗?(Y/N):")
fmt.Scan(&yes)
fmt.Print("老婆的想法:")
fmt.Print("十个包子")
switch yes {
case "y","Y":
fmt.Println("一个西瓜")
}
fmt.Println("老公的想法:")
switch yes {
case "y","Y":
fmt.Println("一个包子")
default:
fmt.Println("十个包子")
}
fmt.Print("请输入你的成绩:")
var score int
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("A")
case score >= 80:
fmt.Println("C")
case score <=60:
fmt.Println("D")
}
}
三.for
package main
import "fmt"
func main(){
result :=0
//初始化子语句,条件子语句, 后置子语句
for i :=1;i<=100;i++{
result += i
}
fmt.Println(result)
}
3.1 continue 与break
#continue
package main
import "fmt"
func main() {
for i := 0; i < 10 ; i++{
if i ==5{
continue // 跳过本次循环,继续下一次
// break // 退出循环
}
fmt.Println(i)
}
}
package main
import "fmt"
func main(){
for i := 0; i <10; i++ {
if i == 5 {
break // 退出循环,输出结果
}
fmt.Println(i)
}
}
3.2 for ……range
完成数据迭代,支持字符串、数组、数组指针、切片、字典、通道类型 ,返回索引、键值数据
package main
import "fmt"
func main() {
s := "我爱中国"
for i,v := range s {
fmt.Printf("%d, %q\n",i,v)
}
}
//# 生成随机数
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().Unix()) //以当前系统时间为种子
fmt.Println(rand.Intn(100))
}
四. 冒泡排序
挨着两个元素比较