if判断语句
if判断语句的判断条件不用()包裹,可以在判断语句里面初始化判断条件的值,
当判断语句的声明变量和局部变量名称一致时候,执行到判断语句中假设变量命名是if1时,局部变量的命名if1会隐藏,等到判断语句执行完再出现
func tempIf(a int) {
if a > 0 {
f.Println("if is true")
} else {
f.Println("if is false")
}
}
for判断语句
//循环语句只有for,支持三种形式,没有while那些循环语句
//初始化和步进表达式可以是多个值
//条件每次循环都会被重新检查,因此不建议在条件语句中使用函数,尽量提前计算好条件并以常量或者变量代替
func tempFor(a int) {//常用的循环模式
for i := 0; i < 10; i++ {
if a == i {
f.Println("break")
break;
}
}
}
func tempFor1(a int) {
for a!=10{
f.Println("continue")
}
}
func tempFor2(a int) {//类似while
for{
if a>5{
f.Println(a)
break;
}
}
}
switch判断语句
switch语句可以使用任何类型或表达式做条件语句
不需要break,一旦条件成立自动终止
如果希望执行下一个case,使用fallthrough语句
支持一个初始化表达式(可以是并行方式),右侧需跟分号
func tempSwitch(str string) {
switch str {
case "1":
f.Println("str is 1")
fallthrough//关键字,条件成立,依旧执行下一条case,不管下一条条件是否成立
case "2":
f.Println("str is 2")
case "3":
f.Println("str is 3")
}
}
跳转语句,关键字break,goto,continue,作用其实跟java语言的没啥区别,但是在java中goto是保留字段,没有任何意义,但是java中的break和continue的作用跟golang一样,可以跳出或者跳转执行指定的标签,c++中有标签,但是他的break,和continue不能说指定跳出和继续指定的标签,但是他的goto可以实现这个功能,条件成立,跳转到指定 标签的执行语句中
break关键字
LABLE1:
for {
for i := 1; i < 10; i++ {
if i == 4 {
break LABLE1 //跳出定义了标签层
}
}
}
fm.Println("break is over")
goto关键字
for {
for i := 1; i < 10; i++ {
if i == 4 {
goto LABLE2 //调整了执行位置,如果是标签是放在for语句
//之前,又是重新开始执行
}
}
}
LABLE2:
fm.Println("goto is over")
continue关键字
LABLE3:
for i := 1; i < 10; i++ {
for {
fm.Print(i)
continue LABLE3 //继续执行定义了标签层
}
}
自增符号++和自减符号--
他这个跟java语言的还是有区别的,它是作为一个语句,而不是作为一个表达式,他不能放在变量的左边,只能放在右边,譬如
a:=1
//a=a++ 或者++a,这样是错误的
只能a++,因为他是一个语句,同样道理,自减符号也是一样。
fm.Println("continue is over")
有疑问加站长微信联系(非本文作者)