首页 > 其他分享 > Go笔记(二):条件控制语句

Go笔记(二):条件控制语句

时间:2023-04-11 09:48:22浏览次数:33  
标签:语句 case fmt 笔记 else score Printf Go 表达式

  Go语言中的if语句根据条件表达式的结果选择需要执行的业务流程。

1、if控制语句

1、if 语法

  语法详情如下:

if 条件表达式 {
    // 条件表达式为true,执行的代码块
}

  条件表达式必须返回布尔型的结果,与Java语法不同,在Go中,if的条件表达式不使用括号。

2、if/else 语法

  语法详情如下:

if 条件表达式 {
    // 条件表达式为true,执行的代码块
} else {
    // 条件表达式为false,执行的代码块
}

3、if/else if/else 语法

  语法详情如下:

if 条件表达式1 {
    // 条件表达式1为true,执行的代码块
}else if 条件表达式2 {
    // 条件表达式2为true,执行的代码块
}else {
    // 条件表达式1、条件表达式2都为false,执行的代码块
}

4、if嵌套 语法

  语法详情如下:

if 条件表达式1 {
     // 条件表达式1 为true时执行
    if 布尔表达式2 {
        // 条件表达式2 为true时执行
    }
}

5、示例代码

 1 package main
 2 
 3 import "fmt"
 4 
 5 // if 条件控制语句
 6 func conditionIf() {
 7    // 布尔型变量  if
 8    flag := true
 9    if flag {
10       fmt.Printf("conditionIf ==> flag: %v\n", flag)
11    }
12 }
13 
14 // if/else 条件控制语句
15 func conditionIfElse() {
16    // 返回结果为布尔型的条件表达式
17    age := 12
18    if age >= 18 {
19       fmt.Printf("age: %v,已成年\n", age)
20    } else {
21       fmt.Printf("age: %v,未成年\n", age)
22    }
23 }
24 
25 // if 嵌套
26 func nestIf() {
27    flag := true
28    flag01 := false
29 
30    if flag {
31       fmt.Printf("nestIf ==> flag: %v\n", flag)
32       // if 嵌套
33       if flag01 {
34          fmt.Printf("nestIf ==> flag: %v\n", flag01)
35       } else {
36          fmt.Printf("nestIf ==> flag: %v\n", flag01)
37       }
38    }else {
39       fmt.Printf("nestIf ==> flag: %v\n", flag)
40    }
41 }
42 
43 // if/elseif/else 条件控制语句
44 func conditionIfElseIfElse() {
45    score := 60.5
46    // 条件表达式1
47    if score < 60 {
48       fmt.Printf("score: %v,不合格\n", score)
49 
50    // 条件表达式2
51    } else if score >= 60 && score < 70 {
52       fmt.Printf("score: %v,合格\n", score)
53 
54    // 条件表达式3
55    } else if score >= 70 && score <= 80 {
56       fmt.Printf("score: %v,良好\n", score)
57 
58    // 条件表达式 1、2、3 都不成立
59    } else {
60       fmt.Printf("age: %v,优秀\n", score)
61    }
62 }
63 
64 func main() {
65    conditionIf()
66    conditionIfElse()
67    conditionIfElseIfElse()
68    nestIf()
69 }

2、switch控制语句

1、switch语法

  switch语句可以判断有多个值的情况,语法详情如下:

switch var1 {
    case var2:
        // do something
    case var3:
       // do something
    // var2、var3条件不成立时,执行default
    default:
       // do something     
}

  var2、var3可以是具体的值,也可以是条件表达式。当case中的条件都不满足时,执行default的流程。

  switch语句支持多条件匹配,并且不同的case之间不使用break分隔,默认只会执行一个case。

2、示例代码

 1 package main
 2 
 3 import "fmt"
 4 
 5 // switch 中 case 匹配具体值,单值
 6 func caseSingleValue() {
 7    //grade := "A"
 8    grade := "D"
 9    switch grade {
10    case "A":
11       fmt.Printf("优秀\n")
12    case "B":
13       fmt.Printf("良好\n")
14    case "C":
15       fmt.Printf("合格\n")
16    default:
17       fmt.Printf("不合格\n")
18    }
19 }
20 
21 // switch 中 case 匹配具体值,多值
22 func caseMultiValue() {
23    var day int
24    fmt.Println("请输入周几")
25    // 输入周几
26    fmt.Scan(&day)
27    switch day {
28    case 1, 2, 3, 4, 5:
29       fmt.Println("工作日")
30    case 6, 7:
31       fmt.Println("周末")
32    default:
33       fmt.Println("工作日")
34    }
35 }
36 
37 // switch 中 case 匹配条件表达式
38 func switchCondition() {
39    score := 70.5
40    switch {
41    case score >= 90 &&  score <= 100:
42       fmt.Printf("优秀\n")
43    case score >= 70 && score < 90:
44       fmt.Printf("良好\n")
45    case score >= 60 && score < 70:
46       fmt.Printf("合格\n")
47    default:
48       fmt.Printf("不合格\n")
49    }
50 }
51 
52 func main() {
53    caseSingleValue()
54    caseMultiValue()
55    switchCondition()
56 }
 

标签:语句,case,fmt,笔记,else,score,Printf,Go,表达式
From: https://www.cnblogs.com/RunningSnails/p/17305151.html

相关文章

  • golang中的错误处理
    0.1、索引https://waterflow.link/articles/16667167272361、panic当我们执行panic的时候会结束下面的流程:packagemainimport"fmt"funcmain(){ fmt.Println("hello") panic("stop") fmt.Println("world")}gorun9.gohellopanic:s......
  • 如何用Golang处理每分钟100万个请求
    用Golang处理每分钟100万个请求转载请注明来源:https://janrs.com/9yaq面临的问题在我设计一个分析系统中,我们公司的目标是能够处理来自数百万个端点的大量POST请求。web网络处理程序将收到一个JSON文档,其中可能包含许多有效载荷的集合,需要写入AmazonS3,以便我们的地图还原......
  • Python Django 通用视图和错误视图的使用
    定义通用视图修改book/models.py代码中的AuthorInfo类,如果一致则不必修改classAuthorInfo(models.Model):id=models.CharField(max_length=30,verbose_name="身份证号",primary_key=True)name=models.CharField(max_length=20,verbose_name="姓名")t......
  • 学习笔记395—Windows10 Docker安装详细教程
    思维导航前言DockerDesktop是什么?DokcerDesktop下载启用Hyper-V以在Windows10上创建虚拟机安装DockerDesktop配置阿里云镜像加速地址WindowsPowerShell查看Docker版本验证Docker桌面版可以正常使用通过启用WSL2安装DockerDocker学习系列文章前言:在上......
  • 机器学习-吴恩达课程笔记
    z-score归一化通过正态分布来放缩范围,注意任何放缩  在x缩小完范围以后都要改变原先的公式即y,不能只改变x的范围。缩放基本没有副作用。 多项式回归表明特征值的数量不一定等于曲线公式中x的数量,如上图,有两个x但是特征值只有一个,其实之所以会产生这个疑问还是在于x没......
  • go语言学习-gin框架学习笔记-1
    gin是一个golang的微框架,封装比较优雅,api友好,源码注释比较明确,具有快速灵活,容错方便等特点,对于golang而言,web框架的依赖远要比python,java之类的要小,自身的net/http足够简单,性能也非常不错。安装goget-ugithub.com/gin-gonic/gin//安装import"github.com/gin-goinc/gin"//......
  • unittest学习笔记
    unittest单元测试框架是受到JUnit的启发,与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。官方文档:https://docs.python.org/zh-cn/3/library/unittest.html......
  • [golang]使用logrus自定义日志模块
    简介logrus是一个第三方日志库,性能虽不如zap和zerolog,但方便易用灵活。logrus完全兼容标准的log库,还支持文本、JSON两种日志输出格式。特点相较于标准库,logrus有更细致的日志级别,从高到低分别是:trace>debug>info>warn>error>fatal>panic支持自定义日志格式,内置支......
  • go语言内存对齐
    go语言内存对齐什么是内存对齐内存对齐,是代码编译后在内存的布局和使用方式。当一个内存地址a是n字节的倍数(其中n是2的幂)时,内存地址a被称为n字节对齐。编译器会将数据按照特定的规则,把数据安排到合适的存储地址上,并占用合适的地址长度比如:存储int32位和int64位的数据时没有......
  • Django笔记二十一之使用原生SQL查询数据库
    本文首发于公众号:Hunter后端原文链接:Django笔记二十一之使用原生SQL查询数据库Django提供了两种方式来执行原生SQL代码。一种是使用raw()函数,一种是使用connection.cursor()。但是官方还是推荐在使用原生SQL之前,尽量的先去探索一下QuerySet提供的各种API。目前......