Go语言学习笔记五: 条件语句

if语句

  1. if 布尔表达式 {
  2. /* 在布尔表达式为 true 时执行 */
  3. }

竟然没有括号,和python很像。但是有大括号,与python又不一样。

例子:

  1. package main
  2. import "fmt"
  3. func main() {
  4. var a int = 1
  5. if a < 2 {
  6. fmt.Printf("a < 2\n" )
  7. }
  8. fmt.Printf("a = %d\n", a)
  9. }

if..else语句

  1. if 布尔表达式 {
  2. /* 在布尔表达式为 true 时执行 */
  3. } else {
  4. /* 在布尔表达式为 false 时执行 */
  5. }

if..else if..else 语句嵌套

  1. if score >= 90 {
  2. fmt.Println("优秀")
  3. } else if score >= 70 {
  4. fmt.Println("良好")
  5. } else if score >= 60 {
  6. fmt.Println("一般")
  7. } else {
  8. fmt.Println("差")
  9. }

if 语句嵌套

  1. if 布尔表达式 1 {
  2. /* 在布尔表达式 1 为 true 时执行 */
  3. if 布尔表达式 2 {
  4. /* 在布尔表达式 2 为 true 时执行 */
  5. }
  6. }

switch 语句

  1. switch var1 {
  2. case val1:
  3. ...
  4. case val2, val3:
  5. ...
  6. default:
  7. ...
  8. }

Type Switch

switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。

  1. switch x.(type){
  2. case type1:
  3. statement1
  4. case type2:
  5. statement2
  6. default: /* 可选 */
  7. statement3;
  8. }

select语句

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

这个东西我还真没有在其他语言里面看到过(可能是我了解的太少)。

  1. select {
  2. case communication clause :
  3. statement1;
  4. case communication clause :
  5. statement2;
  6. /* 你可以定义任意数量的 case */
  7. default : /* 可选 */
  8. statement3;
  9. }
  • 每个case都必须是一个通信
  • 所有channel表达式都会被求值
  • 所有被发送的表达式都会被求值
  • 如果任意某个通信可以进行,它就执行;其他被忽略。
  • 如果有多个case都可以运行,Select会随机公平地选出一个执行。其他不会执行。
  • 否则:如果有default子句,则执行该语句。如果没有default字句,select将阻塞,直到某个通信可以运行;Go不会重新对channel或值进行求值。

学习这个需要先学习channel。我channel还不会呢,先不深入看这个了。

此系列其他文章地址

https://github.com/zhangqunshi/golang_study

Go语言学习笔记五: 条件语句的更多相关文章

  1. Python学习笔记五--条件和循环

    5.1 if语句 没什么好说,if语句语法如下: if expression: expr_true_suit 5.1.1多重条件表达式 单个if语句可以通过布尔操作符and,or,not实现多重条件判 ...

  2. Shell 学习笔记之条件语句

    条件语句 if # if if condition then command fi # if else if condition then command else command fi # if e ...

  3. vue学习笔记(五)条件渲染和列表渲染

    前言 在众多的编程语言中,我们的基础语法总是少不了一些专业语法,比如像定义变量,条件语句,for循环,数组,函数等等,vue.js这个优秀的前端框架中也有同样的语法,我们换一个名词,将条件语句改成专业 ...

  4. Python语言学习前提:条件语句

    一.条件语句 1.条件语句:通过一条或多条语句的执行结果(True或False)来决定执行额代码块.python程序语言指定任何非0或非空(null)的值为true,0或null为false. 2. ...

  5. Python 学习笔记7 条件语句 If

    Python中条件语句if 是通过一条或者多条的执行语句的结果,来判断是否执行其包含的代码块. 通常会配合else.elif一起使用,达到根据条件进行多个代码块的执行操作. 简单的if score = ...

  6. shell 学习笔记8-case条件语句

    一.case语句简介 1.什么是case条件语句 case条件语句就相当于多分支的if/elif/else条件语句,但是比这样的语句更规范更好看,经常被用在失效系统服务启动脚本等企业应用中 程序将ca ...

  7. Go语言学习笔记(五) [函数]

    日期:2014年7月29日   1.函数定义:func (p type) funcname(q int) (r,s int) {return 0,0 }     func: 保留字,用于定义一个函数 ...

  8. JAVAscript学习笔记 js条件语句 第三节 (原创) 参考js使用表 (2017-09-14 15:55)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. c语言学习笔记 switch case语句为什么要加break

    先来看一个没有break的例子: int main() { int a = 1; switch (a) { case 1: printf("1"); case 2: printf( ...

随机推荐

  1. JAVA中的内联函数

    在说内联函数之前,先说说函数的调用过程. 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方.这种转移操作要求在转去前要保护 ...

  2. Necklace

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  3. CGA填充算法之种子填充算法

    CGA填充算法之种子填充算法 平面区域填充算法是计算机图形学领域的一个很重要的算法,区域填充即给出一个区域的边界 (也可以是没有边界,只是给出指定颜色),要求将边界范围内的所有象素单元都修改成指定的颜 ...

  4. hdu 2780 Su-Su-Sudoku(DFS数独)

    题目链接:hdu2780 #include<stdio.h> #include<string.h> #include<queue> #include<math ...

  5. The Activities of September

  6. 移动端与PC端的viewport

    第一种解析: 设备像素,就是我们直觉上觉得"靠谱"的像素,这些像素为所使用的各种设备提供了正规的分辨率,并且其值可以通过(通常情况下)从screen.width/height属性中 ...

  7. asp.net mvc5 分析器错误消息: 未能加载类型“XXX.MvcApplication”

    描述 今天忽然碰到一个这个错误: “/”应用程序中的服务器错误. 分析器错误 说明: 在分析向此请求提供服务所需资源时出错.请检查下列特定分析错误详细信息并适当地修改源文件. 分析器错误消息: 未能加 ...

  8. JavaScript原型与继承的秘密

    在GitHub上看到的关于JavaScript原型与继承的讲解,感觉很有用,为方便以后阅读,copy到自己的随笔中. 原文地址:https://github.com/dreamapplehappy/b ...

  9. .net core 滑动+点击汉字验证码

    用 .net core 写的  滑动+点击汉字的验证码,代码比较简单就不做说明了. github地址  https://github.com/wangchengqun/NetCoreVerificat ...

  10. IT和非IT人士:2分钟了解什么是区块链

    本文由  网易云发布. (非IT:阅读常规部分:IT:阅读引用块) 作者:任长存,网易杭州研究院工程师 前言 信息的高速发展,致使互联网风口犹如娱乐圈,移动互联网,微博.直播.共享经济.短视频.小程序 ...