学习go语言编程之流程控制
Golang支持如下4种流程控制语句:
- 条件语句:if,else和else if
- 选择语句:switch,case和select
- 循环语句:for,range
- 跳转语句:goto
条件语句
示例代码:
a := 3
if a < 5 {
fmt.Println(a, "litter than 5")
} else {
fmt.Println(a, "not litter than 5")
}
关于条件语句,要注意以下几点:
- 条件语句不要使用小括号
()将条件包含起来 - 不论语句体内有几条语句,花括号
{}都是必须存在 - 左花括号
{必须与if或else在同一行 - 在
if之后,条件语句之前,可以添加变量初始化语句,使用分号;分隔
选择语句
根据传入条件的不同,选择语句会执行不同的分支。
示例代码:
switch i {
case 0:
fmt.Println("0")
case 1:
fmt.Println("1")
case 2:
fallthrough
case 3:
fmt.Println("3")
case 4,5,6:
fmt.Println("4, 5, 6")
default:
fmt.Println("default")
}
i = 0,输出:0
i = 1,输出:1
i = 2,输出:3
i = 3,输出:3
i = 4,输出:4, 5, 6
i = 5,输出:4, 5, 6
i = 6,输出:4, 5, 6
i = 其他值,输出:default
有意思的是,switch后面的表达式都不是必须的,如下示例:
switch { // switch关键字之后没有表达式
case i >= 0 && i <= 3:
fmt.Println("0-3")
case i >= 4 && i <= 6:
fmt.Println("4-6")
}
关于选择语句,注意一下几点:
- 左花括号
{必须与switch处于同一行 - 条件表达式不限制为常量或整数
- 单个case中,可以出现多个结果选项
- 不需要使用break语句退出case
- 只有在case中出现了关键字
fallthrough,才会继续执行紧跟的下一个case - 可以不设置switch之后的条件表达式
循环语句
Golang中的循环语句只支持for关键字。
示例代码:
sum := 0
for i = 0; i < 10; i++ {
sum += 1
}
无限循环:
sum := 0
for {
sum++
if sum > 10 {
break
}
}
在循环语句的条件表达式中支持多重赋值:
a := []int{1, 2, 3, 4, 5, 6}
for i, j := 0, len(a) - 1; i < j; i, j = i + 1, j - 1 {
a[i], a[j] = a[j], a[i]
}
关于循环语句,注意以下几点:
- 左花括号
{必须与for在同一行 - 支持使用
continue和break来控制循环
跳转语句
goto语句的语义非常简单,就是跳转到本函数内的某个标签。
示例语句:
// 如下使用goto语句实现了类似循环的效果
func gotoSample() {
i := 0
HERE:
fmt.Println(i)
i++
if i < 5 {
goto HERE
}
}
输出:
0
1
2
3
4
学习go语言编程之流程控制的更多相关文章
- GO语言学习——Go语言基础之流程控制一
Go语言基础之流程控制 if else(分支结构) package main import "fmt" // if条件判断 func main(){ // age := 19 // ...
- C语言学习笔记(四) 流程控制
流程控制 流程控制,说通俗一点就是程序代码执行的顺序.不管对于哪门语言来说,流程控制都是很重要的一部分内容: 流程控制的分类,可以分为三大类: 1.顺序 这个很好理解,顺序执行就是代码从上往下一行行的 ...
- Go语言基础之流程控制
Go语言基础之流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用额流程控制有if和for,而switch和goto主要是为了简化代 ...
- Go语言 数据类型,流程控制
Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...
- Java编程基础——流程控制
Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...
- GO学习-(7) Go语言基础之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...
- R语言学习4:函数,流程控制,数据框重塑
本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...
- c语言学习笔记(4)——流程控制
一.什么是流程控制 程序代码执行的顺序 流程控制分类 顺序执行 选择执行 定义 有选择的执行某些代码 分类 if switch 循环执行 定义 某些代码会被重复执行 分类 for while do w ...
- 如何轻松学习C语言编程!
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- python 学习之 基础篇三 流程控制
前言: 一. python中有严格的格式缩进,因为其在语法中摒弃了“{}”来包含代码块,使用严格的缩进来体现代码层次所以在编写代码的时候项目组要严格的统一器缩进语法,一个tab按键设置为四个空格来缩进 ...
随机推荐
- [转帖]Module ngx_http_v2_module
https://nginx.org/en/docs/http/ngx_http_v2_module.html#:~:text=Sets%20the%20maximum%20number%20of%20 ...
- [转帖]通过拓扑 label 进行副本调度
https://docs.pingcap.com/zh/tidb/stable/schedule-replicas-by-topology-labels#%E5%9F%BA%E4%BA%8E%E6%8 ...
- [转帖]setsockopt(setsockopt的使用方法及注意事项)
http://xingzuo.aitcweb.com/9156453.html 1. setsockopt简介 setsockopt是一个系统调用函数,用于设置套接字选项.套接字是指通信的两个端点之间 ...
- [转帖]华为OpenEuler欧拉系统添加epel源方法
https://blog.whsir.com/post-7002.html 由于国产华为OpenEuler欧拉系统的版本命名是22.03.22.03这种,并且在查看版本的路径中是/etc/open ...
- Linux部分参数的学习
Linux部分参数的学习 简介 之前总结过很多Nginx或者是部署软件时的一些注意事项. 但是感觉对linux系统参数部分掌握的不是很好. 今天周末想着整理一下,作为备忘. limits.conf i ...
- [置顶] k8s,docker,微服务,监控
综合 第一篇:k8s服务A内部调用服务B的方式 第二篇:go-zero grpc 第一篇:grpc,protobuf安装 第二篇:grpc签发证书 第三篇:golang-grpc 第四篇:python ...
- 19.12 Boost Asio 获取远程进程
远程进程遍历功能实现原理与远程目录传输完全一致,唯一的区别在于远程进程枚举中使用EnumProcess函数枚举当前系统下所有活动进程,枚举结束后函数返回一个PROCESSENTRY32类型的容器,其中 ...
- Postfix + Extmail 企业邮件服务器搭建
ExtMail套件用于提供从浏览器中登录.使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面.它以GPL版权释出,设计初衷是希望设计一个适应当前高速发展的I ...
- 认识3D模型-GLTF文件
GLTF文件格式 glTF的全称(Graphics Language Transmission Format)图形语言传输格式.是三维场景和模型的标准文件格式. glTF 核心是 JSON 文件,描述 ...
- C#/.NET/.NET Core优秀项目和框架2024年1月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍.功能特点.使用方式以及部分功能截图 ...