主要是简单记录一下自己在学习Go语言基础语法中的条件语句和循环语句时遇到的一些小要点,只是个人的一个学习记录,水平不高还望大佬们包容。
条件语句
条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。
-
if 语句
- if 语句由一个布尔表达式后紧跟一个或多个语句组成
-
if condition { // do something }
-
if...else 语句
-
if 语句后可以使用可选的 else 语句
-
else 语句中的表达式在布尔表达式为 false 时执行
-
if condition1 { // do something } else if condition2 { // do something else }else { // catch-all or default } -
注意 else 必须与右大括号在同一行
-
if x{ } else { // 不与右大括号在同一行,非法代码 }
-
-
-
if 嵌套语句
- 你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句
-
switch 语句
- switch语句用于基于不同条件执行不同动作。
-
select 语句
- select语句类似于 switch 语句
- 但是select会随机执行一个可运行的case
- 如果没有case可运行,它将阻塞,直到有case可运行
-
Go 没有三目运算符,所以不支持
? :形式的条件判断
循环语句
与大多数高级语言不同,Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构,关键字 for 的基本使用方法与C/C++语言十分类似
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
-
可以看到比较大的一个不同在于 for 后面的条件表达式不需要用圆括号
()括起来 -
Go语言还进一步考虑到无限循环的场景,让大家在写代码时不用再写一些语句如
for(;;){}do{} while(1);
-
可以简化为如下的写法
-
sum := 0 for { sum++ if sum > 100 { break } }
-
-
左花括号
{必须与 for 处于同一行 -
Go语言中的 for 循环与C语言一样,都允许在循环条件中定义和初始化变量,不过需要注意:Go语言不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
-
Go语言的 for 循环同样支持 continue 和 break 来控制循环,但是它提供了一个更高级的 break,可以选择中断哪一个循环,如下例
-
for j := 0; j < 5; j++ { for i := 0; i < 10; i++ { if i > 5 { break aLoop } fmt.Println(i) } } aLoop: // ...
-
附录
本文参考链接及推荐阅读: