Golang入门笔记(5)—— 流程控制之switch分支

news2024/11/17 13:43:42

        switch 有切换,开关的意思,我想这也许就是代码上的意义,通过表达式计算出一个值,然后进行状态的匹配和然后进行流程上的切换。

基本语法:

switch 表达式 {

        case 值a1,值a2, ...
            语句块
        case 值b1,值b2, ...
            语句块
        ...
        default :
            语句块

}

        简单记忆: switch 就是像是一个册封了的权力的头衔,表达式就像是一个将军。 当表达式给与了将军的头衔之后,他便开始开疆辟土 { } ,来了一个块作用域 ; 这里面有很多 表达式 计算出的值,就指向了 ,这个将军即将要去的地方,有茶馆,有电影院,有寺庙,有酒店,有图书管,有健身管, 语句块里面就像是将军在此场景下要做的事。default : 是默认,就是都没地方可去的时候,将军默认要做的事情,比如:睡觉休息。

package main

import "fmt"

func main() {

	switch placeNo := 4; placeNo % 10 {
	case 1, 2, 3:
		fmt.Println("1喝茶")
		fmt.Println("2喝茶")
		fmt.Println("3喝茶")
	case 4, 5:
		fmt.Println("4看书")
		fmt.Println("5看书")
		fallthrough
	case 6:
		fmt.Println("6看书")
	case 7, 8, 9:
		fmt.Println("7健身")
		fmt.Println("8健身")
		fmt.Println("9健身")
	default:
		fmt.Println("啥也不干,在家休息")
	}

}

注意事项:

        1 . case 的值,不能重复 ,否则 build编译的时候 ,会 dupicate case。

        2 . switch 后面的表达式,可以是一个常量值,变量,或可以取到值得函数 都可以。

        3 . case 后的值的数据类型,必须和表达式的数据类型一致。

        4 . case后面可以跟多种情况值, 如 本例。

        5 . default 语句非必须,位置可以随意。一般放在最后。

        6 . switch 可以不带表达式,只用case,当if 分支来使用。

        7 . 和if一样支持在switch 后面定义变量,用分号分隔。但并不推荐。

        8 . switch 穿透:利用fallthrough 关键字,如果在case 语句块后,增加 fallthrough ,会继续执行下一个case。如上的代码输出:4看书 5看书,就是因为 fallthrough 向下击穿了一个case,一个fallthrough,击穿的case, 有且仅有1一个。

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

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

相关文章

[附源码]计算机毕业设计JAVA高校资源共享平台

[附源码]计算机毕业设计JAVA高校资源共享平台 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

IOT云平台 simple(4)springboot netty实现简单的mqtt broker

常见的开源mqttBroker很多,如: Mosquitto、emqx; 这里简单的介绍了mqtt,然后利用springboot netty实现了简单的mqtt Broker。 mqtt Broker:springboot netty实现; mqtt client:MQTT.fx工具软件…

Java Tomcat内存马——filter内存马

目录 前言: (一) 内存马简介 0X01 原理 0X02 内存马类型 2.1 servlet-api类 2.2 spring类 2.3 Java Instrumentation类 (二) filter 内存马 (三)Tomcat Filter 流程分析 0x01 项目搭建 0x02 在访…

【Spring】——5、@Lazy懒加载

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

【BOOST C++ 12 函数式编程】(5) Boost.Lambda

一、说明Boost.Lambda 在 C11 之前,您需要使用像 Boost.Lambda 这样的库来利用 lambda 函数。从 C11 开始,这个库可以被视为已弃用,因为 lambda 函数现在是编程语言的一部分。如果您在不支持 C11 的开发环境中工作,您应该在转向 B…

大空间享大智慧 奇瑞新能源奇瑞大蚂蚁

在亲子消费市场上家庭消费已经成为了主力军。亲子消费的重心已经从以饮食、服装为主向教育、游乐等方向多元化发展。而在出行方面汽车的品质与驾乘感受也是如今消费者选择的主要需求。所以实惠、安全、环保的新能源大空间SUV成为了越来越多二胎、三胎家庭的最终选择。奇瑞新能源…

线程池使用

转载:线程池详解(通俗易懂超级好)_拉格朗日(Lagrange)的博客-CSDN博客_线程池 目录 基本概念 什么是线程池 线程池优点 线程池源码 ThreadPoolExecutor 参数解释 具体使用 线程池的工作原理 线程池的参数 任务队列(w…

元数据管理-解决方案调研一:元数据概述

一、元数据概述 1.1、定义 元数据定义:描述数据的数据,对数据及信息资源的描述性信息。小编认为元数据不仅仅是关于数据的数据,它还是一种上下文,赋予信息更加丰富的身份。 以图片为例,其图片本身是一种数据&#xf…

操作系统的内存究竟是怎么一回事?

摘要:操作系统的内存究竟是怎么一回事?带你完整复习一遍《操作系统》一书中有关内存的所有知识点本文分享自华为云社区《操作系统的内存究竟是怎么一回事?带你完整复习一遍《操作系统》一书中有关内存的所有知识点》,作者&#xf…

【图神经网络】使用DGL框架实现简单图分类任务

使用DGL框架实现简单图分类任务简单图分类任务实现过程打包一个图的小批量定义图分类器图卷积读出和分类准备和训练核心代码参考资料图分类(预测图的标签)是图结构数据里一类重要的问题。它的应用广泛,可见于生物信息学、化学信息学、社交网络…

aws xray ec2环境搭建和基础用法

参考资料 https://docs.amazonaws.cn/en_us/xray/latest/devguide/xray-daemon.html https://docs.aws.amazon.com/xray-sdk-for-nodejs/latest/reference/ https://github.com/aws/aws-xray-sdk-node https://docs.aws.amazon.com/xray-sdk-for-python/latest/reference/ba…

联想集团:长期前景稳定,业务转型正在提高盈利能力

来源;猛兽财经 作者:猛兽财经 由疫情驱动的个人电脑需求正在减弱 在经历了两年的个人电脑销售强劲增长之后,随着全球对疫情封锁限制的放松,由疫情引发的远程工作和在线学习趋势带来的全球个人电脑需求正在减弱。根据IDC的数据,20…

文件之间的拷贝(拷贝图片实例)java.io.FileNotFoundException: G:\dad (拒绝访问。)通过绝对路径获取各种文件名

1.报错解决 :java.io.FileNotFoundException: G:\dad (拒绝访问。) 参考文献:(364条消息) java.io.FileNotFoundException:(拒接访问)_corelone2的博客-CSDN博客_java.io.filenotfoundexception 2.code 代码参考地址:(364条消息) java中文件拷贝的几种方式_babar…

深入理解New操作符

前言 当我们对函数进行实例化时,需要用new操作符来实现。那么,对于它的底层实现原理你是否清楚呢?本文就跟大家分享下它的原理并用一个函数来模拟实现它,欢迎各位感兴趣的开发者阅读本文。 原理分析 我们通过一个具体的例子来看…

MySQL——数据库基础

文章目录什么叫做数据库?主流数据库基本使用服务器、数据库、表之间的关系MySQL逻辑结构MySQL架构MySQL分类存储引擎什么叫做数据库? 软件角度: 为用户或者用户程序提供更加方便的数据管理的软件,通过SQL语句进行! 数…

【PostgreSQL-14版本snapshot的几点优化】

最近在分析PostgreSQL-14版本性能提升的时候,关注到了Snapshots的这一部分。发现在PostgreSQL-14版本,连续合入了好几个和Snapshots相关的patch。 并且,Andres Freund也通过这些改进显著减少了已确定的快照可扩展性瓶颈,从而改进了…

【C++】C/C++内存管理

众所周知,C/C没有内存(垃圾)回收机制,所以写C/C程序常常会面临内存泄漏等问题。这一节我们一起来学习C/C的内存管理机制,深入了解这套机制有利于我们之后写出更好的C/C程序。 在那些看不到太阳的日子里,别忘…

Spring(九)- Spring自定义命名空间整合第三方框架原理解析

文章目录一、Spring通过命名空间整合第三方框架1. Dubbo 命名空间2. Context 命名空间二、Spring自定义命名空间原理解析三、手写自定义命名空间标签与Spring整合一、Spring通过命名空间整合第三方框架 1. Dubbo 命名空间 Spring 整合其他组件时就不像MyBatis这么简单了&#…

电影影院购票管理系统

1、项目介绍 电影影院购票管理系统拥有两种角色:管理员和用户 管理员:用户管理、影片管理、影厅管理、订单管理、影评管理、排片管理等 用户:登录注册、个人中心、查看电影票、电影选座、下单支付、发布影评、查看票房统计等 2、项目技术 …

14、Horizontal Pod Autoscal

一、为何进行缩扩容? 在实际生产中,经常会遇到某个服务需要扩容的场景,可能会遇到由于资源紧张或者工作负载降低而需要减少服务实例数量的场景。可以利用Deployment/RC的Scale机制来完成这些工作。二、缩扩容模式 Kubernetes 对 Pod 扩容与缩…