go语言条件分支语句

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> hot3.png

if-else条件判断

  • 条件判断结构
if condition {
    // do something
}
  • 带初始化语句的条件判断结构
// 需要注意的是,initializatinon产生的局部变量作用域只在if结构中,如果使用了else分支,那么else分支中也有效
if initialization; condition {
    // do something
}

异常

  • 当发生异常时的两种退出方式
if err != nil {
    fmt.Printf("Program stopping with error %v", err)
    return
}
if err != nil {
    fmt.Printf("Program stopping with error %v", err)
    os.Exit(1)
}

switch结构

  • 基本格式
// 注意点:①var1可以是任意类型,而val1和val2必须是相同类型的任意值或产生相同类型值的表达式;②当某个case匹配完之后其默认就不进行下一个case的匹配了,如果需要,可以使用fallthrough来进行;③case后可以使用逗号来表示当前case可以匹配多个值
switch var1 {
    case val1:
    	...
    case val2:
    	...
    default:
    	...
}
// switch中不传入任意值,而依次判断case语句,只要有一个case后的condition结果为true,那么就执行该case语句
switch {
    case condition1:
    	...
    case condition2:
    	...
    default:
    	...
}
// 在switch中添加初始化语句,需要注意语句后面必须带有分号,然后在后续的case语句中则可以使用该初始化的数据值,并且case语句中也只是进行true或false的判断,这里初始化语句所产生的变量只在当前switch结构中有效
switch initialization; {
    case val1:
    	...
    case val2:
    	...
    default:
    	...
}

for结构

  • 基本格式
// 基本for循环迭代
for 初始化语句; 条件语句; 修饰语句 {
    // do something
}
// 类似while的for循环
for 条件语句 {
    // do something
}
// 无限for循环
for {
    // do something
}
// for-range迭代器,这里i表示当前迭代的元素的索引,val表示当前迭代的元素值,这里需要注意的是,val是集合中元素的一个值拷贝,因而任何对val的修改都不会反映到原始集合元素中,这里val如果在某些特殊情况下是一个指针,那么对其进行的操作才会反映到原始集合中
for i, val := range coll {
    // do something
}
  • 对于for-range结构,如果其是对字符串进行遍历,那么其第二个参数是可以解析得到Unicode字符的,比如汉字

标签与goto

  • 标签名称一般要求全部大写

  • goto语句一般都不建议使用,因为一般都有更好的选择能够替换goto的使用,并且goto语句可能导致冗长糟糕的代码;

  • 如果确实要使用goto,那么尽量将标签放到goto语句之后,这样才不会造成可能存在的无限循环;

  • 在goto与标签之间,需要注意不要定义新的变量,否则会产生编译错误

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值