首页 > 其他分享 >Go-流程控制

Go-流程控制

时间:2023-08-23 18:45:15浏览次数:29  
标签:case 控制 流程 Println switch Go main 语句 fmt

在golang语言中有丰富的流程控制方面的功能。包括条件控制语句、循环语句、跳转语句等

1 if条件控制语句

1.1 语法

if condition {
	statement(s)
} else if condition {
	statement(s)
} else {
	statement(s)
}

//1 其中condition 为一个条件表达式,用于判断真假,结果必须为true或false
//2 如果条件为真则执行condition后面{}中的代码,
//3 如果条件为假则依次执行else if 判断直到第一个为真的condition 出现后,执行其后面{}中的代码,
//4 如果所有的condition都为假,则执行else 后面{}中的代码
//5 如果没有else 块,则条件都为假时不执行任何语句,跳过此if条件语句执行下面的代码

1.2 示例

package main

import "fmt"

func main() {

	if a := 2; a > 3 {
		fmt.Println("1")
	} else if a > 2 {
		fmt.Println("2")
	} else {
		fmt.Println("3")
	}
	fmt.Println("4")
}
------------输出
PS C:\Goproject\src\gocode\project01\main> go run .\test.go
3
4
PS C:\Goproject\src\gocode\project01\main>

2 switch 语句

2.1 语法

switch expression {
	case value1,value2:
		statement(s)
	case value3,value4:
		satatement(s)
	...
	default:
		statement(s)
}

//1 expression是一个表达式,用于匹配case子句中的常量或变量。
//2 如果匹配成功,则执行对应的代码
//3 否则跳过该语句,匹配下一个case子句
//4 如果所有的case子句都未匹配成功,则执行default 后面的代码
//5 如果没有default子句,且都没有匹配,则不执行任何语句,跳过此switch条件语句

2.2 示例

package main

import "fmt"

func main() {
	var grade int = 43
	switch grade / 10 {
	case 10:
		fmt.Println("A")
	case 9, 8:
		fmt.Println("B")
	case 7, 6:
		fmt.Println("C")
	default:
		fmt.Println("D")
	}
}

-------------输出
PS C:\Goproject\src\gocode\project01\main> go run .\test.go
D
PS C:\Goproject\src\gocode\project01\main> 

2.3 switch使用注意

  1. expresstion 是一个表达式(常量值、变量、一个有返回值的函数都可以)
  2. case后的value值不能重复
  3. case后的各个值的数据类型,必须和switch的表达式返回的数据类型一致
  4. case后面可以带多个值,使用英文逗号分隔
  5. default子句不是必须的,位置也是随意的
  6. switch穿透,利用fallthrough关键字,如果在case语句块后面增加fallthrough,则会继续执行下一个case的代码,也叫switch穿透

switch穿透示例

package main

import "fmt"

func main() {
	var grade int = 83
	switch grade / 10 {
	case 10:
		fmt.Println("A")
	case 9, 8:
		fmt.Println("B")
		fallthrough
	case 7, 6:
		fmt.Println("C")
	default:
		fmt.Println("D")

	}
}
-----------输出
PS C:\Goproject\src\gocode\project01\main> go run .\test.go
B
C
PS C:\Goproject\src\gocode\project01\main> 

3

标签:case,控制,流程,Println,switch,Go,main,语句,fmt
From: https://www.cnblogs.com/du-z/p/17652507.html

相关文章

  • 性能测试没那么难!RunnerGo,简单、好用
    在当前软件测试行业,熟练掌握性能测试已经是测试工程师们面试的敲门砖了,当然还有很多测试朋友们每天的工作更多的是点点点,性能方面可能也只是做过简单的并发测试,对于编写脚本,搭建环境方面也比较陌生。今天这篇文章就给大家梳理一下如何去做性能测试,和怎么熟练掌握性能测试。文章结构......
  • 【成果展示】go-astilectron实现的算法工具
    仓库地址:https://github.com/go-astilectron-demo-crypt_tools......
  • Django增加定时任务
    要设置定时任务,首先需要安装`django-crontab`库。可以使用以下命令安装:```pip install django-crontab```然后,打开项目的`settings.py`文件,在`INSTALLED_APPS`中添加`'django_crontab'`:```pythonINSTALLED_APPS = [    ...    'django_crontab',    ...]```接下来......
  • 性能测试没那么难!RunnerGo,简单、好用
    在当前软件测试行业,熟练掌握性能测试已经是测试工程师们面试的敲门砖了,当然还有很多测试朋友们每天的工作更多的是点点点,性能方面可能也只是做过简单的并发测试,对于编写脚本,搭建环境方面也比较陌生。今天这篇文章就给大家梳理一下如何去做性能测试,和怎么熟练掌握性能测试。文章结......
  • OS(十八):设备管理之I/O控制方式
    1、程序I/O方式程序I/O方式,称为忙-等待方式,即在处理机向控制器发出一条I/O指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后不断的循环测试busy。 busy为1时,表示输入机尚未输完一个字,处理机应继续对该标志进行测试,直至busy=0,表明输入机已将输......
  • h5开发流程中的关键要点(掌握h5开发的关键技巧)
    h5开发是结合了HTML、CSS和JavaScript等技术,可以实现丰富多样的交互效果和动画效果,同时也兼容多种终端设备。那么在进行h5开发时,我们需要掌握一些关键要点和技巧。下面广州名锐讯动总结了一些h5开发流程中的关键要点,帮助大家掌握h5开发的关键技巧。1.需求分析和界面设计需求分析时......
  • Kanban:促进价值流动的艺术-Leangoo领歌免费敏捷看板工具
    转自:本文转自Leangoo领歌敏捷工具刚接触敏捷转型的团队对Kanban和Scrum的基本概念和应用环境都不陌生,但都是作为被动接受者来理解和使用的,这篇文章的目的是希望基于底层逻辑来阐述看板的艺术来帮助团队加深理解,从而帮助ScrumMaster在带领团队的过程中灵活运用。Kanban的艺术......
  • Go 并发编程 - Goroutine 基础 (一)
    基础概念进程与线程进程是一次程序在操作系统执行的过程,需要消耗一定的CPU、时间、内存、IO等。每个进程都拥有着独立的内存空间和系统资源。进程之间的内存是不共享的。通常需要使用IPC机制进行数据传输。进程是直接挂在操作系统上运行的,是操作系统分配硬件资源的最小单位。......
  • Go 并发编程 - 并发安全(二)
    什么是并发安全并发情况下,多个线程或协程会同时操作同一个资源,例如变量、数据结构、文件等。如果不保证并发安全,就可能导致数据竞争、脏读、脏写、死锁、活锁、饥饿等一系列并发问题,产生重大的安全隐患,比如12306抢到同一张火车票、多个用户抢到只剩一件库存的商品。而并发安全就......
  • Go 并发编程 - runtime 协程调度(三)
    GoRuntimeGoruntime可以形象的理解为Go程序运行时的环境,类似于JVM。不同于JVM的是,Go的runtime与业务程序直接打包在一块,是一个可执行文件,直接运行在操作系统上,效率很高。runtime包含了一些Go的一些非常核心的功能:协程调度、垃圾回收、内存分配等。本文将着重介绍......