GO:流程控制

if

用法:

if condition {// do something 
}
if condition {// do something 
} else {// do something 
}
if condition1 {// do something 
} else if condition2 {// do something else    
}else {// catch-all or default
}

switch

相比较 C 和 Java 等其它语言而言,Go 语言中的 switch 结构使用上更加灵活。它接受任意形式的表达式:

switch var1 {case val1:...case val2:...default:...
}

for

for 初始化语句; 条件语句; 修饰语句 {}

示例:

 for i := 0; i < 5; i++ {fmt.Printf("This is the %d iteration\n", i)}

for-range

这是 Go 特有的一种的迭代结构,您会发现它在许多情况下都非常有用。它可以迭代任何一个集合,语法上很类似其它语言中 foreach 语句。

for pos, char := range str {
...
}

示例:

var a = [10]int{1,2,3,4,5,6,7,8,9,0}

for _, e := range a {
fmt.Println(e)
}

Break 与 continue

break退出循环, continue调到下一个循环

 for i:=0; i<3; i++ {for j:=0; j<10; j++ {if j>5 {break   }print(j)}print("  ")}结果:012345 012345 012345
for i := 0; i < 10; i++ {if i == 5 {continue}print(i)print(" ")}

label

Go语言也支持label(标签)语法:分别是break labe、 goto label和continuelabel。

package mainimport "fmt"func main() {Loop:for i := 0; i < 10; i++ {fmt.Println("label i is ", i)for j := 0; j < 10; j++ {if j > 5 {//跳到外面去啦,但是不会再进来这个for循环了break Loop}}}//跳转语句 goto语句可以跳转到本函数内的某个标签gotoCount := 0
GotoLabel:gotoCount++if gotoCount < 10 {goto GotoLabel //如果小于10的话就跳转到GotoLabel}fmt.Println(gotoCount)a:=0Clabel:for a < 20 {if a == 15 {a++continue Clabel}fmt.Println(a)a++}
}

输出:

label i is 0
10
10
11
12
13
14
16
17
18
19
break label:跳转标签(label)必须放在循环语句for前面,并且在break label跳出循环不再进入for循环里的代码。
goto label: 跳转标签(label)可以放在循环语句for前面,也可以放在后面,建议放在后面,避免出现死循环。
continue label:和break label 类似,跳转标签只能放在for前面,不会跳出for循环,只是跳过当前单次循环,继续下一次迭代。跟单独使用continue效果一样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/10637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm 集成 Git

目录 1、配置 Git 忽略文件 2、定位Git 3、使用pycharm本地提交 3.1、初始化本地库 3.2、添加到暂存区 3.3、提交到本地库 3.4、切换版本 4、分支操作 4.1、创建分支 4.2、切换分支 4.3、合并分支 5、解决冲突 1、配置 Git 忽略文件 作用&#xff1a;与项目的实际…

问题:幂等性 分布式session

web项目中请求线程到service层的时候远程调用服务之前是串行化执行每个任务都要get阻塞等待任务完成&#xff0c;举例当用户在购物车页面点击去结算就会请求后台toTrade请求获取订单确认的详情数据并渲染到订单详情页&#xff0c;现在在toTrade请求中使用异步任务编排Completab…

Linux下安装mysql8.0(以tar.xz包安装--编译安装)

前言&#xff1a;原文在我的博客网站中&#xff0c;持续更新数通、系统方面的知识&#xff0c;欢迎来访&#xff01; Linux下安装mysql8.0&#xff08;以tar.xz包安装--编译安装&#xff09;https://myweb.myskillstree.cn/126.html 目录 一、下载对应自己glic版本的MySQL …

1.基于python的单细胞数据预处理-降维可视化

目录 降维的背景PCAt-sneUMAP检查质量控制中的指标 参考&#xff1a; [1] https://github.com/Starlitnightly/single_cell_tutorial [2] https://github.com/theislab/single-cell-best-practices 降维的背景 虽然特征选择已经减少了维数&#xff0c;但为了可视化&#xff0…

电气原理图入门要点和难点具体应用详解

学习电气原理图可以让你理解电气系统的基本组成和工作原理。 以下是入门电气原理图的一些基本步骤: 1.了解基本符号: 电气原理图中有很多标准符号代表不同的电气元件,比如电源、电阻、电容、电感、开关等。你需要先了解这些符号以及它们的含义。 2.学习电路图的结构: 电路图…

C++语法|智能指针的实现及智能指针的浅拷贝问题、auto_ptr、scoped_ptr、unique_ptr、shared_ptr和weak_ptr详细解读

文章目录 1.自己实现智能指针智能指针引起的浅拷贝问题尝试定义自己的拷贝构造函数解决浅拷贝 2.不带引用计数的智能指针auto_ptrscoped_ptrunique_ptr&#xff08;推荐&#xff09; 3.带引用计数的智能指针模拟实现引用计数shared_ptr和weak_ptr循环引用&#xff08;交叉引用&…

DDD架构理论详解

文章目录 一、概念入门1. 概念简介2. DDD的核心理念3. 范式4. 模型5. 框架6. 方法论7. 软件设计的主要活动 二、DDD核心理论1. Domain领域层都包含什么&#xff1f;2. 聚合、实体和值对象3. 仓储&#xff0c;封装持久化数据4. 适配&#xff08;端口&#xff09;&#xff0c;调用…

AI应用案例:新闻文本分类

随着科学技术的不断发展&#xff0c;互联网技术得以快速的发展和普及&#xff0c;并已在各行各业得到了广泛的应用&#xff0c;从中致使了网络上的信息呈现出爆炸式的增长状态&#xff0c;达到了“足不出户&#xff0c;万事皆知”的境况&#xff0c;充分体现了互联网新闻给生活…

String字符串的应用

String s0=”apple”; String s1=”apple”; String s2=”app” + “le”; System.out.println( s0==s1 ); System.out.println( s0==s2 ); 输出 true true 双等号比较的是两个对象的引用地址,对于String创建的常量都放到了常量池中,s0、s1、s2存的是指向常量池里面值的引用…

Java实现自定义注解,实现不需要token 验证就可以访问接口

目录 1 问题2 实现 1 问题 一个springboot 项目&#xff0c;需要token 验证&#xff0c;前端传过来token ,我们一般在项目全局写一个过滤器&#xff0c;去验证前端传过来的token ,如果有哪些接口不需要token验证&#xff0c;那么就排除这些接口&#xff0c;这个也需要配置。 …

前端 | TED打卡号分类查询

文章目录 &#x1f4da;实现效果&#x1f4da;模块实现解析&#x1f407;html&#x1f407;css&#x1f407;javascript &#x1f4da;实现效果 提供完整TED打卡号对应TED标题的查询列表 根据分类按需查询 &#x1f4da;模块实现解析 &#x1f407;html 搭框架<div cl…

Android Studio连接MySQL8.0

【序言】 移动平台这个课程要做一个app的课设&#xff0c;我打算后期增加功能改成毕设&#xff0c;就想要使用MySQL来作为数据库&#xff0c;相对于SQLlite来说&#xff0c;我更熟悉MySQL一点。 【遇到的问题】 一直无法连接上数据库&#xff0c;开始的时候查了很多资料&#…

海外云手机解决海外社交媒体运营难题

随着全球数字化浪潮的推进&#xff0c;海外社交媒体已成为外贸企业拓展市场、提升品牌影响力的重要阵地。Tiktok、Facebook、领英、twitter等平台以其庞大的用户基础和高度互动性&#xff0c;为企业提供了前所未有的营销机会。本文将介绍如何通过海外云手机&#xff0c;高效、快…

eNSP中小型园区网络拓扑搭建(下)

→b站直通车&#xff0c;感谢大佬← →eNSP中小型园区网络拓扑搭建&#xff08;上&#xff09;← 不带配置命令的拓扑图已上传~ 配置ospf SW5 # ospf 1 router-id 5.5.5.5area 0.0.0.0network 192.168.51.5 0.0.0.0network 192.168.52.5 0.0.0.0area 0.0.0.10network 192.1…

行业早报5.12

母亲节快乐&#xff01; 1.机构&#xff1a;美团旗下 KeeTa 已成为香港第一大外卖平台&#xff0c;单量份额超四成&#xff1b; 2.苹果公布 24Q1 财报&#xff1a;营收 907.5 亿美元&#xff0c;同比下降 4%&#xff1b;大中华区营收 163.7 亿美元&#xff0c;同比下降 8.1%&am…

MAC创建Pytorch环境

1.安装PyCharm,自己网上下载安装 2.安装miniconda,自己网上下载 3.随便在PyCharm创建个python项目 4.在项目下边的终端输入地方去配置python版本以及PyTorch 配置步骤: 1. 检测miniconda是否可用 输入 conda --version 查看 2 . conda search --full-name python 检测使用…

Kafka 面试题(七)

1. 描述Kafka Controller的作用&#xff1f; Kafka Controller在Kafka集群中扮演着核心管理和协调的角色。它的主要作用包括以下几个方面&#xff1a; 主题管理&#xff1a;Kafka Controller负责创建、删除以及增加主题分区等操作。当我们在任意一台Broker中执行kafka-topic脚…

有时你必须清理电脑上的灰尘,那么多久清理一次合理呢

灰尘的堆积几乎是所有电脑用户面临的问题。无论你的房间有多干净,或者你的电脑是否安装了灰尘过滤器,灰尘都会进入室内,但是你应该多久清理一次灰尘或怎么清理​灰尘呢? 你应该多久给电脑除尘一次 对于你应该多久清理一次电脑上的灰尘,没有硬性规定。这在很大程度上取决…

golang函数默认参数

和java和php等编程语言不通&#xff0c; go语言里面函数的形参是没有默认参数的&#xff0c; 而且在go语言里面函数是一种数据类型&#xff0c;这个和其他常见编程语言也是一个不同点。 虽然go没有默认参数&#xff0c;但是对于他的每个参数都一个默认的零值&#xff0c;数字…

elk + filebeat 8.4.3 收集nginx日志(docker部署)

ELK filebeat docker部署 一、 elasticsearch部署1、运行elasticsearch临时配置容器2、拷贝文件目录到本地3、检查elasticsearch.yml4、删除之前elastic&#xff0c;运行正式容器5、docker logs记录启动日志 二、部署kibana1、运行kibana临时配置容器2、docker拷贝配置文件到本…