吾八哥学Golang(三):Golang里的流程控制-条件语句
本文主要是吾八哥学Golang的过程中学习Golang里的流程控制语句的笔记。任何开发语言的程序代码都是由语句构成的,流程控制语句用于建立程序的逻辑结构,golang里支持如下几种流程控制语句:条件语句,选择语句,循环语句,跳转语句。本文主要是学习条件语句,条件语句就是我们经常见到的if,else为关键字的语句,在golang里if后面的条件可以加括号也可以不加,但多条件逻辑运算的时候受逻辑运算优先级的影响条件是应该要加的,这个和其他语言是一样,另外语句体必须使用{}包起来,else和左花括号在同一行,如下实例:
package main import "fmt" func CalcMax(a, b int) int { if a >= b { return a } else { return b } } func main() { fmt.Println(CalcMax(10, 15)) }
上面的例子就是求两个数的最大数的方法。golang里逻辑运算符号为"&&"和“||”以及"!",如下例子:
package main import "fmt" func test1(x int) int { if (x > 0) && (x <= 10) { return 1 } else if (x == 11) || (x == 13) { return 2 } else if x != 16 { return 3 } else { return 4 } } func main() { fmt.Println(test1(11)) }
以上语句的作用是用于,如果x在1-10之间就返回1,如果等于11或者13则返回2,如果不等于16则返回3,等于16则返回4。
另外golang里的条件语句里if之后,条件语句之前还可以加变量初始化语句,使用;间隔,如:
package main import "fmt" func main() { if x:=10; x < 0 { fmt.Println("小于0") } else if x > 0 { fmt.Println("大于0") } else { fmt.Println("等于0") } }
最后在golang里的函数里使用条件语句的时候需要注意下return返回值的位置,不能被条件限制到“无return”,例如:
func testerr(x int) bool { if x > 10 { return true } }
该函数的return仅仅在x>10的时候才返回,这种写法是错误的,编译的时候会报如下错误:“missing return at end of function”,一定要保证在所有条件返回内都保证有return返回。
简单总结一下:
条件语句里的条件可以加括号也可以不加,但涉及到逻辑运算符的时候是需要加括号的
条件语句里支持变量初始化语句,但必须在if之后,条件之前
条件语句里的语句体必须由花括号{}包起来的
左花括号必须和if或者else在同一行
在有返回值的函数里要注意"return"返回值不能在条件限制范围内,也就是必须给定一个返回值