【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

这篇具有很好参考价值的文章主要介绍了【30天熟悉Go语言】7 Go流程控制之分支结构if、switch。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

Go系列文章:

  1. GO开篇:手握Java走进Golang的世界
  2. 2 Go开发环境搭建、Hello World程序运行
  3. 3 Go编程规约和API包
  4. 4 Go的变量、常量、运算符
  5. 5 Go 基本数据类型
  6. 6 Go 复杂数据类型之指针

Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html

二、if

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

【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

if分支结构和其他语言是一样的概念,仅仅API的使用上有细微差别。

1、单分支

基本语法:

if (条件表达式) {
    逻辑代码
}

当条件表达式为true时,会执行{}中的逻辑代码。

package main

import "fmt"

func main() {
	age := 35
	if age >= 35 {
		fmt.Println("正式工作了,开整开整")
	}
}

Go语法规范:

  • 条件表达式左右的()可以不写,建议不写;
  • if和表达式中间,一定要有空格;
  • {}是必须有的,哪怕只写一行代码;在Java中if代码块中仅有一行代码时,可以省略{}

2、双分支

基本语法:

if 条件表达式 {
    逻辑代码1
} else {
    逻辑代码2
}

当条件表达式成立时,执行逻辑代码1;否则执行逻辑代码2。

func main() {
	age := 35
	if age >= 35 {
		fmt.Println("正式工作了,开整开整")
	} else {
		fmt.Println("该吃吃该喝喝,耍一耍")
	}
}

Go语法规范

  • else 和 } 不能分行。下面的代码编写方式是错误的

    if 条件表达式 { 
       逻辑代码1 
    } 
    else { 
       逻辑代码2 
    } 
    

    【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

3、多分支

基本语法:

if 条件表达式1 {
    逻辑代码1
} else if 条件表达式2 {
    逻辑代码2
} else {
    逻辑代码3
}

如果走了一个分支,其他分支不会再去判断执行。

package main

import "fmt"

func main() {
	age := 35
	if age >= 35 {
		fmt.Println("正式工作了,开整开整")
	} else if age <= 3 {
		fmt.Println("good good study, day day up")
	} else {
		fmt.Println("该吃吃该喝喝,耍一耍")
	}
}

三、switch

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

switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面不需要再加 break;默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case。

【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

1、基本语法

语法:

switch 表达式 {
    case value1...:
        代码逻辑1
    case value5,value6...:
        代码逻辑2
    case value7...:
        代码逻辑3
    default:
        代码逻辑4
}
package main

import "fmt"

func main() {
	score := 98
	// 根据分数判断等级
	switch score / 10 {
	case 9, 10:
		fmt.Println("优秀")
	case 7, 8:
		fmt.Println("良好")
	case 6:
		fmt.Println("及格")
	default:
		fmt.Println("不及格")
	}
}

default是用来“兜底”的一个分支,当其它case分支都不走时会走default分支。

2、语法规范

1)switch

  1. switch后是一个表达式,可以是常量值、变量、有返回值的函数…
    • 在Java中,常用的Java8里,支持的数据类型为:byte、short、int、long、char、String、enum。
  2. switch后可以不跟表达式,直接仿作if分支来使用;
    【30天熟悉Go语言】7 Go流程控制之分支结构if、switch
  3. switch后也可以直接声明/定义一个变量,分号结束,不推荐使用
    【30天熟悉Go语言】7 Go流程控制之分支结构if、switch
  4. switch穿透:利用fallthrough关键字,如果在case语句块后增加fallthrough ,则会继续执行下一个case,default也能穿透到;
    【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

2)case

  1. case后面的值如果是常量值,不能重复;
    【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

  2. case后值的数据类型 必须和switch表达式返回值的数据类型一致;
    【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

  3. case后可以跟多个值,使用逗号间隔,比如:case value1,value2,value3
    【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

  4. case后面不需要加break;默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case。

3)default

  1. default分支可以放在任意位置上,不一定非要放在最后;

四、总结

go语言中对if、switch语法的要求更加严格,相对于Java等高级语言而言,也有了更多的特性:比如:switch支持表达式、支持穿透、case支持多个值。

对比Java来看

1)if

Go中的if和Java中的if使用相同,Go语言中只是把if后面的小括号给去掉了。

Java中的if

if (num > 10) {
....
}

Go中的if

if num > 10 {
....
}

2)switch

Go中的switch和Java中的switch使用基本相同;区别在于:

  • Go中把switch后面的小括号给去掉了;
  • Go中的switch每一个case中不需要写break,Java需要写(不写,则全部穿透)。
  • Go中的switch特性更加丰富,支持表达式、支持穿透、case支持多个值。
    • Java中不支持case多个值。

Java中的switch

int score = 98;
// 根据分数判断等级
switch (score / 10) {
    case 10:
    case 9:
        System.out.println("优秀");
    case 8:
    case 7:
        System.out.println("良好");
        break;
    case 6:
        System.out.println("及格");
        break;
    default:
        System.out.println("不及格");
        break;
}

Go中的switch文章来源地址https://www.toymoban.com/news/detail-489387.html

score := 98
	// 根据分数判断等级
	switch score / 10 {
	case 9, 10:
		fmt.Println("优秀")
		// switch穿透, 继续执行下一个case
		fallthrough
	case 7, 8:
		fmt.Println("良好")
	case 6:
		fmt.Println("及格")
	default:
		fmt.Println("不及格")
	}

到了这里,关于【30天熟悉Go语言】7 Go流程控制之分支结构if、switch的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言步行梯】分支语句if...else、switch详谈

    🎯每日努力一点点,技术进步看得见 🏠专栏介绍:【C语言步行梯】专栏用于介绍C语言相关内容,每篇文章将通过图片+代码片段+网络相关题目的方式编写,欢迎订阅~~ C语言由 ; (分号)隔开的就是一条语句,举个例子↓↓↓ 生活中,我们有很多需要选择的情况。例如:你想

    2024年03月16日
    浏览(46)
  • 【30天熟悉Go语言】5 Go 基本数据类型

    Go系列文章: GO开篇:手握Java走进Golang的世界 2 Go开发环境搭建、Hello World程序运行 3 Go编程规约和API包 4 Go的变量、常量、运算符 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html 基本数据类型大体来看有四种:数值型、字符型、布尔型、字符串。数值型又分为整数类

    2024年02月10日
    浏览(27)
  • (上) C语言中的语句分类及分支语句:if语句、switch语句介绍

    目录 前言 一、语句的分类 1. 空语句 2. 表达式语句 3. 函数调用语句 4. 复合语句 5. 控制语句 二、分支语句 1. if语句 (1) if的使用 (2) else的使用 (3) 分支中包含多条语句 (4) 嵌套if (5) 悬空else问题 2. switch语句 (1) if语句和switch语句的对比 (2) switch语句中的break (3) switch语句中的defa

    2024年01月22日
    浏览(52)
  • 【30天熟悉Go语言】6 Go 复杂数据类型之指针

    Go系列文章: GO开篇:手握Java走进Golang的世界 2 Go开发环境搭建、Hello World程序运行 3 Go编程规约和API包 4 Go的变量、常量、运算符 5 Go 基本数据类型 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html 和 C/C++ 中的指针不同,Go中的指针不能进行偏移和运算。它是一种类型

    2024年02月09日
    浏览(30)
  • 【30天熟悉Go语言】9 Go函数全方位解析

    作者 :秃秃爱健身,多平台博客专家,某大厂后端开发,个人IP起于源码分析文章 😋。 源码系列专栏 :Spring MVC源码系列、Spring Boot源码系列、SpringCloud源码系列(含:Ribbon、Feign)、Nacos源码系列、RocketMQ源码系列、Spring Cloud Gateway使用到源码分析系列、分布式事务Seata使用到

    2024年02月10日
    浏览(48)
  • 【30天熟悉Go语言】4 Go的变量、常量、运算符

    Go系列文章: GO开篇:手握Java走进Golang的世界 2 Go开发环境搭建、Hello World程序运行 3 Go编程规约和API包 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html 变量相当于内存中一个数据存储空间的标识。 变量的使用分三步:声明、赋值、使用。 变量的声明 采用 var 变量名

    2024年02月07日
    浏览(33)
  • 【30天熟悉Go语言】3 怀着Java看Go的编程规约

    Go系列文章: GO开篇:手握Java走进Golang的世界 2 Go开发环境搭建、Hello World程序运行 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html 1 源文件以 .go 结尾 2 程序的执行入口是main()函数 3 严格区分大小写 4 方法由一条条语句构成,每个语句后不需要加分号(GO会在每行后

    2024年02月06日
    浏览(30)
  • 【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

    君兮_的个人主页 勤时当勉励 岁月不待人 C/C++ 游戏开发 Hello,这里是君兮_,今天又来给大家更新0基础学习C语言中的文章啦! 今天带来的是对分支语句的详解,初学者建议先看看总集哦, 这里是链接: 【C语言初阶】万字解析,带你0基础快速入门C语言(上) 【C语言初阶】万字解析

    2024年02月11日
    浏览(46)
  • 【30天熟悉Go语言】2 Go开发环境搭建、Hello World程序运行

    Go系列文章: GO开篇:手握Java走进Golang的世界 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html 1 进入到Go官网(https://golang.org),点击Download按钮; 2 选择操作系统对应的环境版本(图形化安装),进行下载,比如博主的windows: 3 下载完一路安装,博主的安装目录如下

    2024年02月06日
    浏览(40)
  • 【Dart】=> [04] Dart初体验-基础语法(流程控制-if-switch-case-for循环

    学习内容: if 语句 switch – case 语句 for 循环语句 if 语句让代码有选择的执行,可以指定满足条件时才能执行的代码。 语句形式: if … else if … else if … else 案例: 根据学生分数,判断学生成绩是否及格 根据学生分数,划分学生成绩所在等级 优秀:分数大于等于90分 良好

    2024年01月19日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包