Go 语句

简介: Go 语言条件语句if 语句 | if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 |if...else 语句 | if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 |if 嵌套语句 | 你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。 |switch 语句 | switch 语句用于基于不同条件执行不同动作。 |select 语句 | select 语句类似于 switch 语句,但是select会随机执行一个可运行

Go 语言条件语句



if 语句 | if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 |


if...else 语句 | if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 |


if 嵌套语句 | 你可以在 ifelse if 语句中嵌入一个或多个 ifelse if 语句。 |


switch 语句 | switch 语句用于基于不同条件执行不同动作。 |


select 语句 | select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。 |


注意:Go 没有三目运算符,所以不支持 ?: 形式的条件判断。


switch语句


switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。


switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加 break

switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case,如果我们需要执行后面的 case,可以使用 fallthrough 。


switch var1 {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}


Go 语言 select 语句


select 是 Go 中的一个控制结构,类似于用于通信的 switch 语句。每个 case 必须是一个通信操作,要么是发送要么是接收。


select 随机执行一个可运行的 case。如果没有 case 可运行,它将阻塞,直到有 case 可运行。一个默认的子句应该总是可运行的。


Go 编程语言中 select 语句的语法如下:

select {
    case communication clause  :
       statement(s);      
    case communication clause  :
       statement(s); 
    /* 你可以定义任意数量的 case */
    default : /* 可选 */
       statement(s);
}


Go 语言循环语句



for 循环


for init; condition; post { }


和 C 的 while 一样:


for condition { }


其中由于init 和 post 参数是可选的,我们可以直接省略它,类似 While 语句。

for { }


for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:

for key, value := range oldMap {
    newMap[key] = value
}


For-each range 循环


这种格式的循环可以对字符串、数组、切片等进行迭代输出元素。

package main
import "fmt"
func main() {
        strings := []string{"google", "runoob"}
        for i, s := range strings {
                fmt.Println(i, s)
        }
        numbers := [6]int{1, 2, 3, 5} 
        for i,x:= range numbers {
                fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
        }  
}


以上实例运行输出结果为:

0 google
1 runoob
第 0 位 x 的值 = 1
第 1 位 x 的值 = 2
第 2 位 x 的值 = 3
第 3 位 x 的值 = 5
第 4 位 x 的值 = 0
第 5 位 x 的值 = 0


循环嵌套


以下实例使用循环嵌套来输出 2 到 100 间的素数:


package main
import "fmt"
func main() {
   /* 定义局部变量 */
   var i, j int
   for i=2; i < 100; i++ {
      for j=2; j <= (i/j); j++ {
         if(i%j==0) {
            break; // 如果发现因子,则不是素数
         }
      }
      if(j > (i/j)) {
         fmt.Printf("%d  是素数\n", i);
      }
   }  
}


九九乘法表

package main 
import "fmt"
func main() {
    for m := 1; m < 10; m++ {
    /*    fmt.Printf("第%d次:\n",m) */
        for n := 1; n <= m; n++ {
            fmt.Printf("%dx%d=%d ",n,m,m*n)
        }
        fmt.Println("")
    }
}


break 语句


Go 语言中 break 语句用于以下两方面:


用于循环语句中跳出循环,并开始执行循环之后的语句。


break 在 switch(开关语句)中在执行一条 case 后跳出语句的作用。


在多重循环中,可以用标号 label 标出想 break 的循环。


continue 语句


Go 语言的 continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句。


for 循环中,执行 continue 语句会触发 for 增量语句的执行。


在多重循环中,可以用标号 label 标出想 continue 的循环。


Go 语言 goto 语句


Go 语言的 goto 语句可以无条件地转移到过程中指定的行。


goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。


但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。





目录
相关文章
|
3月前
|
存储 Go C语言
go 基本语法
go 基本语法
33 0
|
4月前
|
缓存 编译器 测试技术
|
4月前
|
存储 Java 编译器
|
4月前
|
存储 NoSQL Go
|
4月前
|
JavaScript 前端开发 Java
Go 语言中的 Switch 语句详解
使用switch语句来选择要执行的多个代码块中的一个。 在Go中的switch语句类似于C、C++、Java、JavaScript和PHP中的switch语句。不同之处在于它只执行匹配的case,因此不需要使用break语句。
95 1
|
6月前
|
Go 自然语言处理 编译器
Go 学习笔记-Go 词法解析
Go 学习笔记-Go 词法解析
48 0
Go 学习笔记-Go 词法解析
|
8月前
|
存储 搜索推荐 编译器
Go源码解析之select.go
Go源码解析之select.go
70 0
|
10月前
|
Unix Go
go10 函数
go10 函数
62 0
|
10月前
|
Java Go C#
go11 方法
go11 方法
73 0
|
11月前
|
Go
Go中select条件语句详解
Go中select条件语句详解
129 0