Go语言 之 流程控制

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("跳出循环")

输出结果:
在这里插入图片描述
最后祝大家学有所成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值