【Hello Go】Go语言流程控制

Go语言流程控制

    • 选择结构
      • if语句
      • switch语句
    • 循环结构
      • for循环
      • range
    • 跳转语句

Go语言支持最基本的三种程序结构

  • 顺序结构
  • 选择结构
  • 循环结构

选择结构

if语句

Go语言中的if语句是没有括号的

代码演示如下

	var a int = 3  // 因为a == 3 所以说只会输出3if a == 3 {fmt.Println("a == 3") }if a == 4 {fmt.Println("a == 4")}

此外Go语言的if语句还支持一个初始化表达式

始化表达式和条件表达式之间要用分号隔开

if b:=3 ; b == 3{ // 初始化表达式和条件表达式之间要用分号隔开 

if … else if … else

Go语言和C++中if语句的差别主要是有两点

  • Go语言中的if elseif等后面条件不加括号
  • Go语言的大括号禁止换行

代码表示如下

	// test if ... else ...var a int = 5if a == 3 {fmt.Println("a == 3")}else if a == 4 {fmt.Println("a == 4")}else {fmt.Println("a != 3")}

switch语句

Go语言的switch语句和C++中的switch语句不同的是 Go语言中的case语句后面默认带着break 所以说我们不用像C++一样后面加上break了

代码示例如下

	// test switch case var score int = 90switch score{case 90:fmt.Println("优秀")case 80:fmt.Println("良好")case 70 , 60 , 50 :fmt.Println("一般")default:fmt.Println("差")}

如果我们想要强制执行后面的代码 只需要在执行语句后面加上一个 fallthrough 即可

	// test switch case var score int = 90switch score{case 90:fmt.Println("优秀")fallthroughcase 80:fmt.Println("良好")case 70 , 60 , 50 :fmt.Println("一般")default:fmt.Println("差")}

如果我们不指定switch的变量 我们还可以使用条件表达式来case 比如说

	var score int = 90switch  { // 不switch变量case score >= 90:fmt.Println("优秀")default:fmt.Println("差")}

循环结构

**这里需要注意的是 go语言没有while循环 **

for循环

for循环和C++的唯一区别就是不加括号

代码示例如下

func test5()  {var sum int = 0 var i int = 0for i = 0; i < 10; i++{sum += i}fmt.Println(sum)
}

这里值得注意的一点是 go语言中不允许int a = 10 这种写法

range

在Go语言中 我们可以使用range来遍历一个字符串或数组等

关键字range会返回给我们两个值 一个是下标 一个是元素的值

如果说我们只用一个参数接受返回值的话 那么默认就是接受下标

	var str string = "abcde" for _ , i := range str { // 舍弃掉下表 只需要stirng中的值fmt.Printf("%c\n" , i)}

跳转语句

Go语言的跳转语句有三个

  • break
  • continue
  • goto

break是跳出当前循环 它在循环语句中都可以使用 而continue只能在for循环中使用

goto的用法也和我们C++的用法一样 但是我们不建议使用goto 这会导致执行流乱跳的情况

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

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

相关文章

B站批量取消关注

找到关注页面&#xff1a; 右键检查或者按F12进入开发者界面 然后选console&#xff0c;在页面下面输入下面jQuery代码&#xff0c;然后按回车。复制粘贴两次这一页的博主就能全部取消大概20个 然后刷新页面&#xff0c;接着粘贴两边代码&#xff0c;循环如此即可。 $(".…

【新闻稿】Solv 与 zCloak 联合开发跨境贸易场景下可编程数字凭证项目,获得新加坡、加纳两国央行支持...

关于昨天 Solv 携手 zCloak 与新加坡和加纳两个央行合作的 Project DESFT&#xff0c;很多朋友都发来恭喜和祝福&#xff0c;并希望了解详情。这个事我们秘密努力了半年多&#xff0c;终于有一个阶段性的成果。这里我转载中文版官宣新闻稿&#xff0c;欢迎大家关注。等我忙过这…

Javaweb之Vue的概述

2.1 Vue概述 通过我们学习的htmlcssjs已经能够开发美观的页面了&#xff0c;但是开发的效率还有待提高&#xff0c;那么如何提高呢&#xff1f;我们先来分析下页面的组成。一个完整的html页面包括了视图和数据&#xff0c;数据是通过请求 从后台获取的&#xff0c;那么意味着我…

Android Proguard混淆

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、语法规则3.1 输入/输出选项3.2 保留选项3.3 缩…

系统时间和JVM的Date时间不一致问题解决

通过Java得到的时间与操作系统时间不一致&#xff0c;如何修改Java虚拟机时间&#xff1f; 造成这种问题的原因可能是&#xff1a;你的操作系统时区跟你JVM的时区不一致。 你的操作系统应该是中国的时区吧&#xff0c;而JVM的时区不一定是中国时区&#xff0c;你在应用服务器…

高教社杯数模竞赛特辑论文篇-2023年C题:基于历史数据的蔬菜类商品定价与补货决策模型(附获奖论文及R语言和Python代码实现)(中)

目录 六、 问题三模型建立与求解 6.1 问题三求解思路 6.2 问题三模型建立 6.2.1 模型假定和预处理

系统韧性研究(5)| 常用的系统韧性技术

如果不利事件或条件导致系统无法正常运行&#xff0c;则它们可能会对有价值的资产造成各种形式的损害。正如我在本系列的前几篇文章中概述的那样&#xff0c;系统韧性很重要&#xff0c;因为没有人想要一个无法克服“不可避免的逆境”的脆弱系统。 在本系列的第一篇文章中&…

36、Flink 的 Formats 之Parquet 和 Orc Format

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

人生阶段总结

--回顾一下我迷茫、努力、不开心又失败的阶段人生自我介绍一下&#xff0c;我是一个智力平平&#xff0c;记忆力差&#xff0c;适合自学的长睡眠者。 大专之前 国内的应试教育基本上不适合我&#xff0c;厌恶补课厌恶机械式听课刷题&#xff0c;所有的优势学科都是自学&#xf…

eclipse启动无法找到类(自定义监听器)

一.报错 二.排查 1.首先检查代码是否有问题 本人报错是找不到监听器&#xff0c;故检查监听器的代码和web.xml文件是否有问题 public class DoorListener implements ServletContextListener 监听器是否继承并实现ServletContextListener中的方法。 web.xml中&#xff1a; &…

EMP.DLL是什么东西?怎么解决EMP.DLL文件缺失

在我们使用电脑的过程中&#xff0c;有时会遇到一些特定的错误提示&#xff0c;比如“emp.dll文件缺失”。这样的提示对许多用户来说可能一脸懵逼&#xff0c;不知道怎么处理&#xff0c;那么&#xff0c;究竟什么是emp.dll&#xff1f;它的缺失会产生什么影响&#xff1f;又应…

阿里云CentOS主机开启ipv6

目录 一、云主机开启和使用 ipv6 1、网络和交换机开启 ipv6 2、创建 / 编辑云主机&#xff0c;开启ipv6 3、安全组放行ipv6端口 二、使用 ipv6 地址进行 ssh 连接 三、ipv6 地址绑定域名 一、云主机开启和使用 ipv6 1、网络和交换机开启 ipv6 进入网络、交换机详情页面…

ClickHouse的分片和副本

1.副本 副本的目的主要是保障数据的高可用性&#xff0c;即使一台ClickHouse节点宕机&#xff0c;那么也可以从其他服务器获得相同的数据。 Data Replication | ClickHouse Docs 1.1 副本写入流程 1.2 配置步骤 &#xff08;1&#xff09;启动zookeeper集群 &#xff08;2&…

最新自动定位版本付费进群系统源码

更新内容&#xff1a; 1.在网站首页增加了付款轮播功能。 2.新增了城市定位功能&#xff0c;方便用户查找所在城市的相关信息。 3.对域名库及支付设置进行了更新和优化。 4.增加了一种图模板设置模式&#xff0c;简化了后台模板设置流程。 5.此外还进行了前后台的其他优化…

蓝桥杯第三周算法竞赛D题E题

发现更多计算机知识&#xff0c;欢迎访问Cr不是铬的个人网站 D迷宫逃脱 拿到题目一眼应该就能看出是可以用动态规划来解决。但是怎么定义dp呢? 这个题增加难度的点就在当所在位置与下一个要去的位置互质的时候&#xff0c;会消耗一把钥匙。当没有钥匙的时候就不能移动了。想…

Linux(3):Linux 的文件权限与目录配置

把具有相同的账户放入到一个组里面&#xff0c;这个组就是这两个账户的 群组 。在访问资源&#xff08;操作系统中计算机的资源&#xff09;时&#xff0c;可以让这个组里面的所有用户都具有访问权限。 每个账号都可以有多个群组的支持。 在我们Liux 系统当中&#xff0c;默认的…

模拟滴答声

/*----------------------------------------------- 内容&#xff1a;模拟滴答声 ------------------------------------------------*/ #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c;头文件包含特殊功能寄存器的定义 sbit SPKP1^2; …

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 4》(8)

《Linux操作系统原理分析之Linux 进程管理 4》&#xff08;8&#xff09; 4 Linux 进程管理4.4 Linux 进程的创建和撤销4.4.1 Linux 进程的族亲关系4.4.2 Linux 进程的创建4.4.3 Linux 进程创建的过程4.4.4 Linux 进程的执行4.4.5 Linux 进程的终止和撤销 4 Linux 进程管理 4.…

索引三星结构

三星索引的定义&#xff0c;可以先给我们对索引优化提供一个大概的思路&#xff1a; 满足第1颗星&#xff1a; 取出所有的等值谓词的列&#xff0c;作为索引最开头的列——以任意顺序都可以。 满足第2颗星&#xff1a; 将order by加入到索引列&#xff0c;不要改变这些列的顺…

Redis - 订阅发布替换 Etcd 解决方案

为了减轻项目的中间件臃肿&#xff0c;由于我们项目本身就应用了 Redis&#xff0c;正好 Redis 的也具备订阅发布监听的特性&#xff0c;正好应对 Etcd 的功能&#xff0c;所以本次给大家讲解如何使用 Redis 消息订阅发布来替代 Etcd 的解决方案。接下来&#xff0c;我们先看 R…