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. 使用jQuery开发tab选项卡插件

    为了复习巩固jQuery的插件开发.HTML和CSS方面的知识,做了一个简单的tab选项卡插件,简单记录一下开发.使用的过程,以备日后使用. 一.插件效果 tab选项卡插件常用的功能均已实现,包括:动 ...

  2. 能够提高PHP的性能的一些注意事项

      1. 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.(静态类调用属性和方法,只可以调用静态属性和方法.self::方法名().self::属性名.只有实例化 ...

  3. js(es6)数组去重

    // 利用set.reduce.filter去重 // Set function getSetArr(arr) { return [...new Set(arr)] } console.log(get ...

  4. 【一起学源码-微服务】Netflix Eureka 源码一:Netflix Eureka 源码初探,我们为什么要读源码?

    前言 最近发现 网上好多自己的博客,很多朋友转载了文章却不加下 原载地址,本文欢迎转载一起学习,请在目录出加上原出处,感谢.转载来自:博客(一枝花算不算浪漫) 看了前面几篇文章的小伙伴知道,前几天在学 ...

  5. 学习python的日常4

    偏函数: 偏函数是functools模块提供的一个功能,偏函数可以通过设定参数的默认值,降低函数调用的难度 其中设定的参数默认值实际上是可以被传入为其他值的,最后创建偏函数时可接收函数对象.*args ...

  6. ISCC之web2

    Php代码审计 PHP代码 <?php error_reporting(0); require 'flag.php'; $value = $_GET['value']; $password = ...

  7. java AST JCTree简要分析

    JCTree简要分析 [toc] JCAnnotatedType 被注解的泛型:(注解的Target为ElementType.TYPE_USE时可注解泛型) public static class A ...

  8. Java抽象语法树AST,JCTree 分析

    JCTree简要分析文章目录JCTree简要分析JCAnnotatedTypeJCAnnotationJCArrayAccessJCArrayTypeTreeJCAssertJCAssignJCAss ...

  9. 烂笔头@WP 的博文仅供自己学习的备忘录

    前记:本博主的博文仅供自己学习的备忘录. 说明:很久未用博客,登录密码已忘记,费劲找回来,特写本博文申明.因为,今天邮件收到一条博文的评论,有谩骂本博主之意,甚觉委屈.所以,写以下文字说明“1.我的博 ...

  10. python 私有和保护成员变量如何实现?—— "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量;" 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量.在python中定义私有变量只需要在变量 ...