Go 编程基础
一.判断语句if
- 条件表达式没有括号
- 支持一个初始化表达式
- 左大括号必须和条件语句或者else在同一行
- 支持单行模式
- 初始化语句中的变量为block级别,同时隐藏外部的变量名
以下是演示
package main import "fmt" func main() { var num int num = 0 if num:=1;num>0 { fmt.Println("1.Yes") }else{ fmt.Println("1.No") } if num>0{ fmt.Println("2.Yes") }else{ fmt.Println("2.No") } }
当然打印结果是第一个Yes,第二个No
二.循环语句for
- Go只有for一个循环语句关键字,但支持3种形式
- 初始化和步进表达式可以是多个值
- 条件语句每次循环都会被重新检查,因此不建议在条件语句中使用函数,尽量计算好条件并以常量或者变量代替。
- 左大括号必须和条件语句在同一行
以下是演示
1.无限循环
package main import "fmt" func main() { a := 1 for { a++ if a>=10{ fmt.Println("a:",a) break } } fmt.Println("Over") }
2.条件循环
package main import "fmt" func main() { a := 0 for a <= 10 { a++ } fmt.Println("Over") }
3.经典形式
package main import "fmt" func main() { for a:=0;a <= 10;a++ { fmt.Println("a:",a) } fmt.Println("Over") }
三.选择语句switch
- 不需要break。一旦条件符合,自动退出
- 可以使用任何类型或表达式作为条件语句
- 如希望继续执行下一个case,需要fallthrough语句
- 支持一个初始化表达式,右侧需要跟上分号
- 左大括号必须和条件语句在同一行
以下是例子
package main import "fmt" func main() { switch a := 1;{ case a >= 0: fmt.Println("Number le 0") fallthrough case a >= 1: fmt.Println("Number le 1") default: fmt.Println("None") } }
四..跳转语句goto,break,continue
- 三个语句都可以配合标签使用
- 标签名区分大小写,若不使用会造成编译错误
- break和continue可以配合标签用于退出多层循环的退出
- Goto是调整执行位置的,与其他2个语句配合标签的结果不相同
以下是例子
LABEL1是可以跳出LABEL1所对应的那层循环。
package main import "fmt" func main() { LEBEL1: for{ for i := 0;i<10 i="" if="" i=""> 3{ break LEBEL1 } } } fmt.Println("Over") }
这个continue是和break一样的。LABEL1所对应的第一层循环。
而goto只是调整执行位置。