Go语言学习笔记(3)——分支、循环结构
1 条件语句: if, else if, else
   特殊用法:判断num是奇是偶;其中局部变量num只能在该if...else语句中使用!
  if num := 10; num % 2 == 0 {
              fmt.Println(num, "is even.")    //偶
  } else {
              fmt.Println(num, "is odd.")     //奇
  }
2 switch语句,以下是其在Go中所有特殊用法及说明:
 switch x := 5; x{              //switch后可以没有表达式!
              default:
                          fmt.Println(x)    //default项并不一定放在最后位置(可以省略),其作用是
                                            //当所有case都匹配失败后,自动匹配default.
              case 5:
                          x += 10
                          fmt.Println(x)
                          fallthrough       //Go中默认每个case后都自带一个break;
                                            //如果想要匹配成功后还继续执行下面的case,
                                            //则需要在此case的最后一行加上fallthrough
              case 6,7,8:                   //一个case后可以跟多个值
                          x += 20
                          fmt.Println(x)
              case :                    //case后的表达式可以省略,认为是switch true,(为啥我省略的就ERROR!)
                                        //并且每个case表达式都被计算为true,并执行相应的代码块。
                          x += 30
                          fmt.Println("哈哈")
}
type-switch: switch也可以被用来判断某个interface变量中实际存储的变量类型
var x interface{}
switch x.(type) {             //switch i := x.(type)
         case type1:
                       语句1
         case type2:
                       语句2
}
3 select 语句 (类似于switch语句)
var c1, c2, c3 chan int
var i1, i2 int select {
case i1 = <- c1:
fmt.Printf("Received ", i1, "from c1\n")
case c2 <- i2:
fmt.Printf("Sent ", i2, "to c2\n")
case i3, ok := (<- c3): //i3, ok := <- c3
if ok {
fmt.Printf("Received ", i3, "from c3\n")
} else {
fmt.Printf("c3 is closed\n")
}
default:
fmt.Printf("No communication.\n")
}
每个case都必须是一个通信!所有channel表达式和被发送的都会被求值!    
如果某个通信可以进行,则执行,其他case就被忽略。如果多个case都可执行,则会随机公平地选出一个执行!
否则:如果有default语句,则执行default;如果没有default,则select将阻塞,直到某个通信可以执行!
     
4 循环语句: for是唯一的循环语句!且for循环中的初始化语句、条件判断语句和条件改变语句都是可选的。
     for i := 0; i <= 10; i++{
              fmt.Printf(" %d", i)
     }
for循环的range格式可以对slice、map、数组和字符串等进行循环迭代:
    for key, value := range oldMap {
              newMap[key] = value        //数组复制。。。。。。
    }
*跳出循环: break, continue, goto( 使用goto + 自定义标识符,可以无条件地转到以该标识符开头的行!)
Go语言学习笔记(3)——分支、循环结构的更多相关文章
- Go语言学习笔记六: 循环语句
		Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ... 
- Bash脚本编程学习笔记07:循环结构体
		本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ... 
- PYTHON 100days学习笔记004:循环结构
		目录 Day04 - 循环结构 1. 循环结构的应用场景 2.for-in循环 3. while循环 4. 练习 4.1 输入一个数判断是不是素数. 4.2 输入两个正整数,计算最大公约数和最小公倍数 ... 
- 51单片机C语言学习笔记3: 存储器结构
		MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器2.片外程序存储器3.片内数据存储器4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外统一编 ... 
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射
		加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ... 
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射reflect
		加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ... 
- 吴裕雄--天生自然C++语言学习笔记:C++ 循环
		有的时候,可能需要多次执行同一块代码.一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推. 编程语言提供了允许更为复杂的执行路径的多种控制结构. 循环语句允许我们多次执 ... 
- c语言学习笔记(10)——结构体
		------------------------------------------------------------------ # include <stdio.h> struct ... 
- Go语言学习笔记(8)——包和结构体
		包 —— 每个可执行的应用程序必须包含一个主函数,它是执行的入口点.主函数应该存在main包中. 结构体: 通过 . 操作符访问结构体的各个成员! 1. 定义结构体类型person: type per ... 
随机推荐
- 2018.06.29 NOIP模拟 Gcd(容斥原理)
			Gcd 题目背景 SOURCE:NOIP2015-SHY-2 题目描述 给出n个正整数,放入数组 a 里. 问有多少组方案,使得我从 n 个数里取出一个子集,这个子集的 gcd 不为 1 ,然后我再从 ... 
- MUI框架开发HTML5手机APP(一)--搭建第一个手机APP(转)
			出处:http://www.cnblogs.com/jerehedu/p/7832808.html 前 言 JRedu 随着HTML5的不断发展,移动开发成为主流趋势!越来越多的公司开始选择使用H ... 
- 21 Survival of Desert Life 沙漠生命的延续
			Survival of Desert Life 沙漠生命的延续 ① Some desert animals can survive the very strong summer heat and dr ... 
- linux week3
			2.如何快速的回到 上⼀一次所在的位置 cd An argument of - is equivalent to $OLDPWD. cd - #cd $OLDPWD cd - #快速的回到 上 ... 
- UVa 11167 Monkeys in the Emei Mountain (最大流)
			题意:雪雪是一只猴子.它在每天的 2:00 —— 9:00之间非常渴,所以在这个期间它必须喝掉2个单位的水.它可以多次喝水,只要它喝水的总量是2.它从不多喝,在一小时内他只能喝一个单位的水.所以它喝水 ... 
- Java 增强 for 循环
			Java 增强 for 循环 Java5 引入了一种主要用于数组的增强型 for 循环. Java 增强 for 循环语法格式如下: for(声明语句 : 表达式) { //代码句子 } 声明语句:声 ... 
- MATLAB中的快捷键
			Ctrl + c 中止程序的运行,鼠标要点到命令窗内. 
- Watermelon -- codeforces
			http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93241#problem/A (654123) http://codeforces.co ... 
- (网络流  最大流  Dinic || SAP)Control -- hdu --4289
			链接: http://acm.hdu.edu.cn/showproblem.php?pid=4289 http://acm.hust.edu.cn/vjudge/contest/view.action ... 
- hdu 5045 N个人做M道题的正确率
			http://acm.hdu.edu.cn/showproblem.php?pid=5045 给出N个人做M道题的正确率,每道题只能由一个人做出,并且当所有人都做出来且仅做出一道题时,做过题的人才可以 ... 
