分支结构
package main
import "fmt"
func main() {
s := true
//if和{之间的就是条件,条件通常都是关系运算符
if s { //左括号和if在同一行
fmt.Println("真")
}else{
fmt.Println("假")
}
//if支持1个初始化语句, 初始化语句和判断条件以分号分隔
if a := 10; a == 10 { //条件为真,指向{}语句
fmt.Println("a == 10")
}
}
package main //必须有一个main包
import "fmt"
func main() {
var num int
fmt.Printf("请按下楼层:")
fmt.Scan(&num)
switch num { //switch后面写的是变量本身
case 1:
fmt.Println("按下的是1楼")
//break //go语言保留了break关键字,跳出switch语言, 不写,默认就包含
fallthrough //不跳出switch语句,后面的无条件执行
case 2:
fmt.Println("按下的是2楼")
//break
fallthrough
case 3:
fmt.Println("按下的是3楼")
break
//fallthrough
case 4:
fmt.Println("按下的是4楼")
break
//fallthrough
default:
fmt.Println("按下的是xxx楼")
}
score := 85
switch { //可以没有条件
case score > 90: //case后面可以放条件
fmt.Println("优秀")
case score > 80: //case后面可以放条件
fmt.Println("良好")
case score > 70: //case后面可以放条件
fmt.Println("一般")
default:
fmt.Println("其它")
}
}
循环结构
for循环
package main //必须有一个main包
import "fmt"
func main() {
//for 初始化条件 ; 判断条件 ; 条件变化 {
//}
//1+2+3 …… 100累加
sum := 0
//1) 初始化条件 i := 1
//2) 判断条件是否为真, i <= 100, 如果为真,执行循环体,如果为假,跳出循环
//3) 条件变化 i++
//4) 重复2, 3, 4
for i := 1; i <= 100; i++ {
sum = sum + i
}
fmt.Println("sum = ", sum)
}
range迭代
package main //必须有一个main包
import "fmt"
func main() {
str := "abc"
//通过for打印每个字符
for i := 0; i < len(str); i++ {
fmt.Printf("str[%d]=%c\n", i, str[i])
}
//迭代打印每个元素,默认返回2个值: 一个是元素的位置,一个是元素本身
for i, data := range str {
fmt.Printf("str[%d]=%c\n", i, data)
}
for i := range str { //第2个返回值,默认丢弃,返回元素的位置(下标)
fmt.Printf("str[%d]=%c\n", i, str[i])
}
for i, _ := range str { //第2个返回值,默认丢弃,返回元素的位置(下标)
fmt.Printf("str[%d]=%c\n", i, str[i])
}
}
break和continue
package main //必须有一个main包
import "fmt"
import "time"
func main() {
i := 0
for { //for后面不写任何东西,这个循环条件永远为真,死循环
i++
time.Sleep(time.Second) //演示1s
if i == 5 {
//break //跳出循环,如果嵌套多个循环,跳出最近的那个内循环
continue //跳过本次循环,下一次继续
}
fmt.Println("i = ", i)
}
}
goto
package main //必须有一个main包
import "fmt"
func main() {
//goto可以用在任何地方,但是不能夸函数使用
fmt.Println("11")
goto End //goto是关键字, End是用户起的名字, 他叫标签
fmt.Println("22") //这句不会执行
End:
fmt.Println("33")
}
网友评论