首页 > 其他分享 >golang流程控制if,switch分支

golang流程控制if,switch分支

时间:2023-02-18 12:56:01浏览次数:37  
标签:case fmt else golang switch Printf n1 n3 流程

if 分支

if 单分支

if 条件表达式 {
逻辑代码
}

package main

import "fmt"

func main() {
	//var a int = 9
	//if a < 10 { //判断a《10位true,所以为执行下面的打印a的值。
	if a := 9; a < 10 { //定义a的值为9,判断a《10位true
		fmt.Printf("a的值为: %v\n", a)
	}
}

执行结果

a的值为: 9

if 双分支

if 条件表达式 {
逻辑代码1
} else {
逻辑代码2
}

当条件表达式成立时执行逻辑代码1,当条件表达式不成立执行逻辑代码2

package main

import "fmt"

func main() {
	if n1 := 20; n1 > 30 { //判断n1的值是否大于30,结果为false
		fmt.Printf("a的值大于30,a的值为%v\n", n1)
	} else { //注意else必须写}一行,不能写在下面
		fmt.Printf("a的值小于30,a的值为%v\n", n1)
	}
}

执行结果

a的值小于30,a的值为20

if 多分支

if 条件表达式1 {
逻辑代码1
} else if 条件表达式2 {
逻辑代码2
}
.......
else {
逻辑代码n
}
if条件表达式成立就执行哪个逻辑代码,都不成立就执行else下面的代码

package main

import "fmt"

// 多分支
func main() {
	if n3 := 81; n3 >= 100 { //n3的值大于等于100,执行打印
		fmt.Printf("n3的值大于100,n3的值为:%v\n", n3)
	} else if n3 >= 90 { //n3的值大于等于90,执行打印
		fmt.Printf("n3的值大于90,n3的值为:%v\n", n3)
	} else if n3 >= 80 { //n3的值大于等于80,执行打印
		fmt.Printf("n3的值大于80,n3的值为:%v\n", n3)
	} else { //上面的条件都不符合,则执行这个打印
		fmt.Printf("n3的值小于80,n3的值为:%v\n", n3)
	}
}

执行结果

n3的值大于80,n3的值为:81

switch 分支

switch 表达式 {
case 值1,值2,.….:
语句块1
case 值3,值4,...:
语句块2
....
default:
语句块
}

  • case 后面的值不能重复,且必须与switch后面表达式的值类型一致。
  • case后面不需要带break。
  • default作为兜底,不是必须的。当上面的case值都不匹配,则执行default下面的语句块,default写在什么位置都可以,不一定需要写在最下面。
  • 利用fallthrough关键字可以穿透case下面的判断,执行下面的语句
  • case后面可以带多个值,使用逗号间隔。比如 case 值1,值2…
package main

import "fmt"

func main() {
	var n1 int = 120
	switch n1 {
	case 90, 100: //当n1等于90或者100执行下面的打印
		fmt.Printf("n1的值为90或100\n")
	case 110: //当n1等于110执行下面的打印
		fmt.Printf("n1的值为110\n")
	case 120: //当n1等于120执行下面的打印
		fmt.Printf("n1的值为120\n")
		fallthrough //继续执行下一个case,也叫switch穿透。
	case 130:
		fmt.Printf("n1的值为130\n")
	default: //上面的case都不匹配,则执行这段打印
		fmt.Printf("n3的值不在90,100,110,120,130之中\n")
	}
}

执行结果

n1的值为120
n1的值为130

标签:case,fmt,else,golang,switch,Printf,n1,n3,流程
From: https://www.cnblogs.com/LI-XinYu/p/17132194.html

相关文章

  • 62-CICD持续集成工具-Jenkins构建Golang的web项目
    实现Golang应用源码编译并部署安装Golang环境#编译安装[root@jenkins~]#catinstall_go.sh#!/bin/bashGO_VERSION=1.18.4URL=https://studygolang.com/dl/golang/go${......
  • 基于centos7部署 Seafile 服务器流程(使用MySql)
    官方搭建教程(home-SeafileCloud)1.下载seafile7.0*版本(好像是官方7.0*版本后都不支持centos7了。)下载地址:SeafileServer例如: 2.将下载的文件放好、解压(可以使用F......
  • 字符设备驱动编写流程
    1什么是字符设备?字符(char)设备是能够像字节流(类似文件)一样被访问的设备,由字符设备驱动来实现这种特性。字符设备驱动程序通常至少要实现open、close、read和write系统......
  • golang运算符
    1.算术运算符算术运算符有:+,-,*,/,%,++,--1.1加号(+)表示正数数字相加字符串拼接packagemainimport( "fmt")funcmain(){ num1:=+4 num2:=8 str1:="abc......
  • Golang 的 cobra 是如何实现使用链表实现命令树的
    Golang的cobra是如何实现使用链表实现命令树的在cobra中,每个命令都是独立的。通过parent.AddCommand(children)的形式进行串连。varroot=&cobra.Command{}......
  • udhcp源码剖析(一)——DHCP服务器和客户端的工作流程
    DHCP服务器的工作流程udhcpd,即dhcp服务器,在路由器等网关设备中,DHCP服务器启动后用于给LAN侧和无线终端分配IP、租约和其他网络配置。根据RFC2131文档规范,一个标准的DHCP服......
  • SpringMVC13 - 执行流程
    SpringMVC常用组件DispatcherServlet:前端控制器,不需要工程师开发,由框架提供作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求HandlerMapping......
  • ISC DHCP 分配IP流程分析
    概述在Linux的世界中,ISCDHCP被广泛应用。因为ISCDHCP的版权是允许在保留其版权声明的基础上,使用,复制,修改其源代码。对于Linux开发人员来说,在掌握了ISCDHCP分配IP的流程......
  • 国内OpenAI充值,购买ChatGPt plus一站式流程(使用depay注册海外支付(万事达)和OKX(欧易)进行
    OpenAI的ChatGPT已经推出,但是对国内有限制,购买使用十分不便,经过摸索研究终于购买成功,记录分享一下在国内购买的方法,两个链接放在前面方便取用。depay快捷跳转链接:https:/......
  • stm32入门--流程
    //使用固件库点亮LEDintmain(void){//定义一个GPIO_InitTypeDef类型的结构体GPIO_InitTypeDefGPIO_InitStructure;//开启GPIO端口时钟......