if 语句
判断表达式是否正确,如果正确则执行
age := 20
if age > 18 {
fmt.Println("可以开车啦!")
}else{
fmt.Println("好好读书!");
}
多个判断
age := 20
if age > 18{
fmt.Println("可以开车啦!")
}else if age > 30{
fmt.Println("好好赚钱。");
}else{
fmt.Println("好好读书!");
}
for循环
go语言中没有其他循环方式,仅仅只有for循环,do,while循环没有
for i := 0; i < 10; i++{
fmt.Println(i);
}
死循环方法,直接括号就是。
for {
...
}
for range 循环
for range
循环返回的是键值对,只能用于切片、数组、字符串、channel、map类型数据
s := "hello"
for i,v := range s{
fmt.Printf("%d %c\n",i,v)
}
如果只写一个值,则返回键值
s := "hello"
for i,v := range s{
fmt.Printf("%d %c\n",i,v)
}
只想要值的话,可以使用匿名变量_
忽略键值
s := "hello"
for _,v := range s{
fmt.Printf("%c\n",v)
}
switch
对大量的if
判断的简化操作
n := 1;
switch n {
case 1:
fmt.Println("大拇指");
case 2:
fmt.Println("食指");
case 3:
fmt.Println("中指");
case 4:
fmt.Println("无名指");
case 5:
fmt.Println("小拇指");
default:
fmt.Println("无效数字");
}
可以不用break
终止判断,也是正常运行。
也可以将判断的变量只存在于当前作用域下
switch n := 2;n {
case 1:
fmt.Println("大拇指");
case 2:
fmt.Println("食指");
case 3:
fmt.Println("中指");
case 4:
fmt.Println("无名指");
case 5:
fmt.Println("小拇指");
default:
fmt.Println("无效数字");
}
fallthrough
语法可以执行满足条件的下一个case
,是为了兼容C语言中的case
设计的。
switch n := 2;n {
case 1:
fmt.Println("大拇指");
case 2:
fmt.Println("食指");
fallthrough;
case 3:
fmt.Println("中指");
case 4:
fmt.Println("无名指");
case 5:
fmt.Println("小拇指");
default:
fmt.Println("无效数字");
}
// 输出
食指
中指
goto
goto
语句通过下标进行无条件跳转,goto
语句可以快速跳出循环、避免重复退出有一定帮助。
for i := 0; i < 10; i++{
for j := 0; j < 10; j++{
if j == 2{
goto breakTag;
}
fmt.Printf("%d %d\n",i,j);
}
}
breakTag:
fmt.Println("跳出循环")
输出结果:
最后祝大家学有所成!