Go程序主要由以下几部分组成:(具体可以参考2选择结构中的实例)

  1. *包声明
  2. *导入包
  3. *函数
  4. *变量
  5. *语句和表达式
  6. *注释

流程控制

1.顺序结构

2.选择结构 

(1)if else

if 和 else 分支结构在 Go 中当然是直接了当的了。

 
包声明
package main
导入fmt包
import "fmt"
main函数
func main() {

这里是一个基本的例子。

    if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}

你可以不要 else 只用 if 语句。

    if 8%4 == 0 {
fmt.Println("8 is divisible by 4")
}

在条件语句之前可以有一个语句;任何在这里声明的变量都可以在所有的条件分支中使用。

    if num := 9; num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has 1 digit")
} else {
fmt.Println(num, "has multiple digits")
}
}

注意,在 Go 中,你可以不使用圆括号,但是花括号是需要的。

 
 
$ go run if-else.go
7 is odd
8 is divisible by 4
9 has 1 digit

Go 里没有三目运算符(?:),所以即使你只需要基本的条件判断,你仍需要使用完整的 if 语句。

(2)switch

switch ,方便的条件分支语句。

 
 
package main
 
import "fmt"
import "time"
 
func main() {

一个基本的 switch

    i := 2
fmt.Print("write ", i, " as ")
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
}

在一个 case 语句中,你可以使用逗号来分隔多个表达式。在这个例子中,我们很好的使用了可选的default 分支。

    switch time.Now().Weekday() {
case time.Saturday, time.Sunday:
fmt.Println("it's the weekend")
default:
fmt.Println("it's a weekday")
}

不带表达式的 switch 是实现 if/else 逻辑的另一种方式。这里展示了 case 表达式是如何使用非常量的。

    t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("it's before noon")
default:
fmt.Println("it's after noon")
}
}
 
$ go run switch.go
write 2 as two
it's the weekend
it's before noon

3.循环结构

(1)for

for 是 Go 中唯一的循环结构。这里有 for 循环的三个基本使用方式。

 
 
package main
 
import "fmt"
 
func main() {

最常用的方式,带单个循环条件。

    i := 1
for i <= 3 {
fmt.Println(i)
i = i + 1
}

经典的初始化/条件/后续形式 for 循环。

    for j := 7; j <= 9; j++ {
fmt.Println(j)
}

不带条件的 for 循环将一直执行,直到在循环体内使用了 break 或者 return 来跳出循环。

    for {
fmt.Println("loop")
break
}
}
 
$ go run for.go
1
2
3
7
8
9
loop

在教程后面,当我们学到 rang 语句,channels,以及其他数据结构时,将会看到一些 for 的其它使用形式,

(4)Go程序结构和流程控制的更多相关文章

  1. php程序的三大流程控制

    php程序的三大流程控制 ①  顺序控制(从上到下.从左到右) ②分支控制 if(条件表达式){ //n多语句 }else if (条件表达式){ //n 多语句 }else if(条件表示式){ / ...

  2. Python分支结构与流程控制

    Python分支结构与流程控制 分支结构 if 语句 分支结构在任何编程语言中都是至关重要的一环,它最主要的目的是让计算机拥有像人一样的思想,能在不同的情况下做出不同的应对方案,所以if语句不管是在什 ...

  3. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  4. 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述

    034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...

  5. Day01_变量,数据类型_程序交互_流程控制

    python执行的两种方式: 1,交互的方式:  优点:可以及时调试程序,调试方法  缺点: 无法永久保存代码 2,保存在文件中执行  优点:可以永久保存代码,在执行的时候调用  缺点:不能即时调试代 ...

  6. 4. Scala程序流程控制

    4.1 程序流程控制说明 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句,顺序控制,粉质控制,循环控制 温馨提示:Scala语言中控制结构和Java语言中的 ...

  7. Python 流程控制-分支结构详解

    目录 Python 流程控制--分支结构 1.结构分类 顺序结构 分支结构 循环结构 2.分支结构详解 分支结构 定义格式: if 单支结构 if 双分支结构 if 多分支结构 Python 流程控制 ...

  8. C#学习笔记_04_流程控制

    04_流程控制 程序的执行结构: 顺序结构 分支结构 循环结构 可以通过某些特定的控制语句来控制代码的执行结构 分支流程控制 if else 基本语法 可以只有if没有else,但是不能没有if只有e ...

  9. 数据类型(三) + 流程控制(一) day05

    目录 昨日回顾 (三) 花式赋值 链式赋值 交叉赋值 (四) 列表list (五) 字典dict (六) 布尔值 (七) 解压缩 (八) python与用户交互的方式 (九) 三种格式化输出的方式 f ...

随机推荐

  1. NEST search查询

    /// <summary> /// GET /megacorp/employee/_search /// </summary> /// <returns></ ...

  2. Android数据存储原理分析

    Android上常见的数据存储方式为: SharedPreferences是 Android 中比较常用的存储方法,本篇将从源码角度带大家分析一下Android中常用的轻量级数据存储工具SharedP ...

  3. [LeetCode] 581. 最短无序连续子数组 ☆

    描述 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序. 你找到的子数组应是最短的,请输出它的长度. 示例 1: 输入: [2, 6, 4, 8 ...

  4. yum [Errno 12] Timeout on

    今天新安装一台CentOS,进行yum安装时出现以下问题提示 perl-5.16.3-294.el7_6.x86_64.r FAILED                                 ...

  5. c# Queue 类

  6. prometheus 告警规则

    GitHub网址1 https://github.com/samber/awesome-prometheus-alerts 网址2 https://awesome-prometheus-alerts. ...

  7. Linux中通过ssh将客户端与服务端的远程连接

    前提需要:1.在VMware中装上两台linux虚拟机,本博客使用的都是CentOS 7.2.两部虚拟机可以通过命令ping通.3.两部虚拟机中已经通过yum本地仓库安装了sshd服务. 首先  1. ...

  8. MySQL线程状态详解

    前言: 我们常用 show processlist 或 show full processlist 查看数据库连接状态,其中比较关注的是 State 列,此列表示该连接此刻所在的状态.那么你真的了解不 ...

  9. 高并发架构系列:Redis并发竞争key的解决方案详解

    https://blog.csdn.net/ChenRui_yz/article/details/85096418 https://blog.csdn.net/ChenRui_yz/article/l ...

  10. Python工程目录组织

    Python工程目录组织 from: https://zhuanlan.zhihu.com/p/36221226 Python工程目录组织 关于如何组织一个较好的Python工程目录结构,已经有一些得 ...