一、程序的流程结构
程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。顺序结构:从上向下,逐行执行。选择结构:条件满足,某些代码才会执行。0-1次分支语句: if, switch, select循环结构:条件满足,某些代码会被反复的执行多次。0-N次循环语句: for
二、条件语句
if语句
语法格式
if 布尔表达式{/*在布尔表达式为true 时执行*/}
if 布尔表达式{/*在布尔表达式为true 时执行*/} else {/*在布尔表达式为false时执行*/}
if 布尔表达式1 {/*在布尔表达式1为true 时执行*/} else if 布尔表达式2{/*在布尔表达式1为false , 布尔表达式2为true时执行*/} else{/*在上面两个布尔表达式都为false时,执行*/}
示例代码
a := 16if a > 10 {fmt.Println(\"大于10\")}
a := 6if a > 10 {fmt.Println(\"大于10\")}else {fmt.Println(\"小于等于10\")}
a := 6if a > 10 {fmt.Println(\"大于10\")}else if a > 0 && a <=10 {fmt.Println(\"小于等于10,大于0\")}else {fmt.Println(\"小于等于0\")}
// a 的作用域只在当前if中if a := 10; a%2 == 0 {fmt.Println(\"even\")} else {fmt.Println(\"odd\")}
switch语句
语法格式
switch var1 {case val1 :......case val2:......default :......}
示例代码
num := 4switch num {case 1:fmt.Println(num,\"1\")case 4:fmt.Println(num,\"2\")default:fmt.Println(num,\"default\")}
month := 2day := 0year := 2020switch month {case 1, 3, 5, 7, 8, 10, 12:day = 31case 4, 6, 9, 11:day = 30case 2:if year%400 == 0 || (year%4 == 0 && year%100 != 0) {day = 29} else {day = 28}default:fmt.Println(\"月份有误。。。\")}fmt.Printf(\"%d年,%d月,%d天\", year, month, day)
fallthrough 将下一个case里面进行穿透,也就只是下一个
num := 1//1 1//1 2switch num {case 1:fmt.Println(num, \"1\")fallthroughcase 4:fmt.Println(num, \"2\")case 5:fmt.Println(num, \"5)default:fmt.Println(num, \"default\")}
三、循环语句
循环语句表示条件满足,可以反复的执行某段代码。for是唯一的循环语句。 (Go没有while循环)
for
语法结构
init(执行最开始的一次) --> condition --> 循环体 --> postfor init; condition; post {循环体}
示例代码
// num: 1// num: 2// num: 3// num: 4// num: 5for num:=1; num<=5; num++ {fmt.Println(\"num:\",num)}