读书笔记之Go控制语句

都没有了小 ()!

if

  1. 没有了小 ()
if 表达式{
	...
}else if 表达式{
	...
}else{
	...
}
  1. if后可以创建变量,再判断:但这样err变量只在if范围内
if err := Connect(); err != nil{
	fmt.Println(err)
	return
}

for

  1. 没有了(),但同样:语句可以不写,但 ; 要写!!!
		for 初始语句;条件表达式;结束语句{
			...
		}
  1. 死循环只有条件表达式时 可以省略两个 ;
	for {
		...
	}

	for true {

	}
  1. 结束循环标志
    breakgotoreturnpanic

for range:键值循环

适用:

  • 数组、切片、字符串返回索引和值。
  • map返回键和值。
  • 通道(channel)只返回通道内的值!【循环通道,不断地从中取数据,直到通道被关闭!

switch:分支选择

  1. Go中的switch中数字、整型、表达式都可以了!
  2. case合并!
  3. switch不再用break了!!(拓展:每个case中添加fallthrough关键字则类似java的执行情况)
a := "hello"
switch a{
	case "hello":
		fmt.Println(1)
	case "world","golang":
		fmt.Println(2)
	default:
		fmt.Println(0)
}

/ 输出:1 【只有1
  1. case后不仅仅只能是常量,还可以是判断表达式【switch后面的表达式都没有了】
r := 11
switch {
	case r > 10 && r < 20:
		fmt.Println(r)
	default:
		fmt.Println(-1)
}

goto:跳到

直接跳到目的代码继续运行:【可以运用于统一异常处理】

	for i := 1; i < 10; i++ {
		for j := 1; j < i+1; j++ {
			if j*i == 25 {
				/ 跳转到标签
				goto breakHere
			}
		}
	}

	/ 标签
	breakHere:
		fmt.Println("直接跳到这儿!")
	...

break:跳出

  1. break 默认跳出最近的一层循环
  2. 当然,break 也可以定义标签
	breakHere: for i := 1; i < 10; i++ {
		for j := 1; j < i+1; j++ {
			if j*i == 25 {
				// 跳转到标签
				break breakHere
			}
		}
	}

注意:break是跳出指定标签代码循环块,而goto是指定跳到标签代码!

continue:结束当前循环,直接开始下一轮循环!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值