- 条件语句不需要使用圆括号将条件包含起来 ();
- 无论语句体内有几条语句,花括号 {} 都是必须存在的;
- 左花括号 { 必须与 if 或者 else 处于同一行;
- Go中不能写成elseif,只有else if(需要分开)
栗子:
package main import "fmt" func main() { /* 定义局部变量 */ var a int = 300 var b int = 200 /* 判断条件 */ if a == 100 { fmt.Printf("a 值为 : %d\n", a ); }else if b == 200 { fmt.Printf("b 值为 : %d\n", b ); }else { fmt.Printf("都不对 \n", ); } }
switch…case…
switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case,如果我们需要执行后面的 case,可以使用 fallthrough 。使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。
package main import "fmt" func main() { score := 85 //条件型 switch { case score >= 90: fmt.Println("级别: A") case score >= 80 && score < 90: fmt.Println("级别: B") case score >= 70 && score < 80: fmt.Println("级别: C") case score >= 60 && score < 70: fmt.Println("级别: D") default: fmt.Println("级别: F") } //等值 switch score { case 80, 90: fmt.Println("值可能为80或者90") case 85: //执行下一条 fallthrough case 50: fmt.Println("必须执行") default: fmt.Println("默认执行") } }
注意:
- 和条件语句一样,左花括号 { 必须与 switch 处于同一行;
- 单个 case 中,可以出现多个结果选项(通过逗号分隔);
- 与其它语言不同,Go 语言不需要用 break 来明确退出一个 case;
- 只有在 case 中明确添加 fallthrough 关键字,才会继续执行紧跟的下一个 case;
- 可以不设定 switch 之后的条件表达式,在这种情况下,整个 switch 结构与多个 if…else… 的逻辑作用等同。
for循环
for 循环是一个循环控制结构,可以执行指定次数的循环。
a
a := 0; for i := a; i <= 10; i++ { a += i } fmt.Printf("a : %d\n", a) sum := 1 // sun小于等于10就累加,这样写也可以,更像 While 语句形式 for sum <= 10 { sum += sum } fmt.Printf("sum : %d\n", sum) numbers := [6]int{1, 2, 3, 5} for i,x:= range numbers { fmt.Printf("第 %d 位 x 的值 = %d\n", i,x) } //死循环 /*for { sum++ // 无限循环下去 }*/
注意:
- 和条件语句、分支语句一样,左花括号 { 必须与 for 处于同一行;
- 不支持 whie 和 do-while 结构的循环语句;
- 可以通过 for-range 结构对可迭代集合进行遍历;
- 支持基于条件判断进行循环迭代;
- 与 PHP 一样,都允许在循环条件中定义和初始化变量,且支持多重赋值;
- Go 语言的 for 循环同样支持 continue 和 break 来控制循环。
break 与 continue
和 PHP 一样,Go 语言支持在循环语句中通过 break 语句跳出循环,通过 continue 语句进入下一个循环。
Go 语言的 break 和 contine 与 PHP 的不同之处在于支持与标签结合跳转到指定的标签语句,从而改变这两个语句的默认跳转逻辑,标签语句通过标签+「:」进行声明:
a := 0; for i := a; i <= 10; i++ { a += i } fmt.Printf("a : %d\n", a) sum := 1 // sun小于等于10就累加,这样写也可以,更像 While 语句形式 for sum <= 10 { sum += sum } fmt.Printf("sum : %d\n", sum) numbers := [6]int{1, 2, 3, 5} for i,x:= range numbers { fmt.Printf("第 %d 位 x 的值 = %d\n", i,x) } //死循环 /*for { sum++ // 无限循环下去 }*/
goto
goto 语句的语义非常简单,就是跳转到本函数内的某个标签
注意: 和条件语句一样,左花括号 { 必须与 switch 处于同一行; 单个 case 中,可以出现多个结果选项(通过逗号分隔); 与其它语言不同,Go 语言不需要用 break 来明确退出一个 case; 只有在 case 中明确添加 fallthrough 关键字,才会继续执行紧跟的下一个 case; 可以不设定 switch 之后的条件表达式,在这种情况下,整个 switch 结构与多个 if…else… 的逻辑作用等同。 for循环 for 循环是一个循环控制结构,可以执行指定次数的循环。 a := 0; for i := a; i <= 10; i++ { a += i } fmt.Printf("a : %d\n", a) sum := 1 // sun小于等于10就累加,这样写也可以,更像 While 语句形式 for sum <= 10 { sum += sum } fmt.Printf("sum : %d\n", sum) numbers := [6]int{1, 2, 3, 5} for i,x:= range numbers { fmt.Printf("第 %d 位 x 的值 = %d\n", i,x) } //死循环 /*for { sum++ // 无限循环下去 }*/ 注意: 和条件语句、分支语句一样,左花括号 { 必须与 for 处于同一行; 不支持 whie 和 do-while 结构的循环语句; 可以通过 for-range 结构对可迭代集合进行遍历; 支持基于条件判断进行循环迭代; 与 PHP 一样,都允许在循环条件中定义和初始化变量,且支持多重赋值; Go 语言的 for 循环同样支持 continue 和 break 来控制循环。 break 与 continue 和 PHP 一样,Go 语言支持在循环语句中通过 break 语句跳出循环,通过 continue 语句进入下一个循环。 Go 语言的 break 和 contine 与 PHP 的不同之处在于支持与标签结合跳转到指定的标签语句,从而改变这两个语句的默认跳转逻辑,标签语句通过标签+「:」进行声明: func bcTest() { arr := [][]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} ITERATOR1: for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { num := arr[i][j] if j > 2 { break ITERATOR1 }else if num == 2 { continue } fmt.Println(num) } } } goto goto 语句的语义非常简单,就是跳转到本函数内的某个标签 arr := [][]int{{1,2,3},{4,5,6},{7,8,9}} for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { num := arr[i][j] if j > 1 { goto EXIT } fmt.Println(num) } EXIT: fmt.Println("Exit.")
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/6930/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料