文档章节

go学习笔记-控制流

Bluven
 Bluven
发布于 2014/03/19 20:15
字数 463
阅读 28
收藏 0

控制语句

条件语句

  1. 条件语句不需要使用括号将条件包含起来();

  2. 无论语句体内有几条语句,花括号{}都是必须存在的;

  3. 左花括号{必须与if或者else处于同一行;

  4. 在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔;

  5. 在有返回值的函数中,不允许将“最终的”return语句包含在if...else...结构中,否则会编译失败:

    func example(x int) int{ var result int if x == 0 { result = 5 } else { result = x } return result }

选择语句

switch i { 
    case 0: 
        fmt.Printf("0") 
    case 1: 
        fmt.Printf("1") 
    case 2: 
        fallthrough 
    case 3: 
        fmt.Printf("3") 
    case 4, 5, 6: 
        fmt.Printf("4, 5, 6") 
    default: 
        fmt.Printf("Default") 
} 

switch后面可以不带表达式

switch { 
    case 0 <= Num && Num <= 3: 
        fmt.Printf("0-3") 
    case 4 <= Num && Num <= 6: 
        fmt.Printf("4-6") 
    case 7 <= Num && Num <= 9: 
        fmt.Printf("7-9")
}

golang的switch有几个特点:

  1. 左花括号{必须与switch处于同一行;
  2. 条件表达式不限制为常量或者整数;
  3. 单个case中,可以出现多个结果选项;
  4. Go语言不需要用break来明确退出一个case;
  5. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;
  6. 可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if...else...的逻辑作用等同。

循环

golang只支持for循环

for i:=0; i < 10; i++ {
    fmt.Println(i)
}

sum := 10
for {
    sum++
    if sum > 10{
        break
    }
}

a := []int{1, 2, 3, 4, 5, 6}
for i, j := 0, len(a) – 1; i < j; i, j = i + 1, j – 1 { 
    a[i], a[j] = a[j], a[i] 
}

Go语言的for循环同样支持continue和break来控制循环,但是它提供了一个更高级的break,可以选择中断哪一个循环:

for j := 0; j < 5; j++ { 
    for i := 0; i < 10; i++ { 
        if i > 5 { 
            break JLoop 
        } 
        fmt.Println(i) 
    } 
} 
JLoop:

© 著作权归作者所有

Bluven
粉丝 2
博文 39
码字总数 12307
作品 0
海淀
私信 提问
Swift 个人学习笔记 - 05: 集合类型(Array, Set, Dictionary)

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的...

amc
2017/02/22
0
0
Swift 个人学习笔记 - 06: 控制流

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的...

amc
2017/02/22
0
0
“我爱智能”原创性博客索引

不知不觉,博客也写出了一点小体系,新的阶段已经开始,未来希望再接再厉继续补充这一体系,在成长中写博客,在博客中成长,在此先做一个小的梳理,谢谢大家的支持。 一)关于深度学习系列 ...

on2way
2015/08/29
0
0
和ESP8266 Arduino谈场恋爱 02 这神奇的程序烧写

版权声明:本文为twowinter原创文章,请联系微信公众号twowinter,未经博主允许不得转载。 https://blog.csdn.net/iotisan/article/details/84928341 前言 开发环境搭起来了,接着这篇笔记就...

iotisan
2018/12/09
0
0
Flutter学习笔记(6)--Dart流程控制语句

如需转载,请注明出处:Flutter学习笔记(5)--Dart流程控制语句 条件语句:if、if...elseif、if...elseif...else int score = 90;if (score >=90) { } else if (80>=score && score<90) {pr......

CurtisWgh
07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud Alibaba 实战(二) - 关于Spring Boot你不可不知道的实情

0 相关源码 1 什么是Spring Boot 一个快速开发的脚手架 作用 快速创建独立的、生产级的基于Spring的应用程序 特性 无需部署WAR文件 提供starter简化配置 尽可能自动配置Spring以及第三方库 ...

JavaEdge
今天
7
0
TensorFlow 机器学习秘籍中文第二版(初稿)

TensorFlow 入门 介绍 TensorFlow 如何工作 声明变量和张量 使用占位符和变量 使用矩阵 声明操作符 实现激活函数 使用数据源 其他资源 TensorFlow 的方式 介绍 计算图中的操作 对嵌套操作分层...

ApacheCN_飞龙
今天
7
0
五、Java设计模式之迪米特原则

定义:一个对象应该对其他对象保持最小的了解,又叫最小知道原则 尽量降低类与类之间的耦合 优点:降低类之间的耦合 强调只和朋友交流,不和陌生人说话 朋友:出现在成员变量、方法的输入、输...

东风破2019
昨天
23
0
jvm虚拟机结构

1:jvm可操作数据类型分为原始类型和引用类型,因此存在原始值和引用值被应用在赋值,参数,返回和运算操作中,jvm希望在运行时 明确变量的类型,即编译器编译成class文件需要对变量进行类型...

xpp_ba
昨天
5
0
聊聊nacos Service的processClientBeat

序 本文主要研究一下nacos Service的processClientBeat Service.processClientBeat nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/core/Service.java public class Service ex......

go4it
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部