首页 > 其他分享 >【6.0】Go语言基础之循环语句

【6.0】Go语言基础之循环语句

时间:2023-11-11 21:12:02浏览次数:32  
标签:语句 case name fmt Println 循环 6.0 Go main

【一】判断语句if~else

package main

import "fmt"

// if ~ else 的使用
// [1] 语法
// 语法 if 条件 {条件符合,执行代码}
// 语法 else if  条件 {条件符合,执行代码}
// 语法 else {条件符合,执行代码}

// [2] 执行代码的左侧 { 必须跟 关键字在同一行
func main() {
	score := 98
	if score >= 90 && score <= 100 { // { 只能在这行,不能换行
		fmt.Println("优秀")
	} else if score >= 60 && score <= 90 {
		fmt.Println("良好")
	} else {
		fmt.Println("不及格")
	}
}

【二】循环

  • go语言中循环使用 for 关键字

【1】基于索引的循环

(1)方式一

package main

import "fmt"

// for 循环的使用
// 语法 : for关键字后带三段,每段用 ; 分隔
// 第一段 是 索引的初始值
// 第二段 是 条件
// 第三段 是 自增或自减
func main() {
	// 基于索引的循环
	// 循环打印 0 - 9
	// 【1】方式一
	for i := 0; i < 10; i++ {
		fmt.Println(i)
	}
}

(2)方式二

package main

import "fmt"

// for 循环的使用
// 语法 : for关键字后带三段,每段用 ; 分隔
// 第一段 是 索引的初始值
// 第二段 是 条件
// 第三段 是 自增或自减
func main() {
	// 基于索引的循环
	// 循环打印 0 - 9
	// 【1】方式二 :省略第一段
	var i = 0 // 这样定义起始值,i的作用范围就扩大了
	for ; i < 10; i++ {
		fmt.Println(i)
	}
}

(3)方式三

package main

import "fmt"

// for 循环的使用
// 语法 : for关键字后带三段,每段用 ; 分隔
// 第一段 是 索引的初始值
// 第二段 是 条件
// 第三段 是 自增或自减
func main() {
	// 基于索引的循环
	// 循环打印 0 - 9
	// 【1】方式三 :第三段(自增写在循环体内部)
	var i = 0 // 这样定义起始值,i的作用范围就扩大了
	for ;i < 10; {
		fmt.Println(i)
		i++
	}
}

(4)方式四

package main

import "fmt"

// for 循环的使用
// 语法 : for关键字后带三段,每段用 ; 分隔
// 第一段 是 索引的初始值
// 第二段 是 条件
// 第三段 是 自增或自减
func main() {
	// 基于索引的循环
	// 循环打印 0 - 9
	// 【1】方式四 :省略第一段 和 第三段(自增写在循环体内部)
	// 这样写格式变成了 for 条件 {} 等同于其他语言的 while 循环
	var i = 0 // 这样定义起始值,i的作用范围就扩大了
	for i < 10 {
		fmt.Println(i)
		i++
	}
}

(5)方式五

package main

import "fmt"

// for 循环的使用
// 语法 : for关键字后带三段,每段用 ; 分隔
// 第一段 是 索引的初始值
// 第二段 是 条件
// 第三段 是 自增或自减
func main() {
	// 基于索引的循环
	// 循环打印 0 - 9
	// 【1】方式五 :省略第一段 和 第三段(自增写在循环体内部)
	// 这样写格式变成了 for 条件 {} 等同于其他语言的 while 循环
	for {
		fmt.Println("死循环")

	}
}

【2】基于迭代的循环

package main

import "fmt"

// for 循环的使用
func main() {
	// 基于迭代的循环
	var a = [3]int{1, 2, 3}
	for index, value := range a {
		// index 为索引
		fmt.Println(index)
		// value 为索引对应的值
		fmt.Println(value)
	}
}

【三】switch语句

  • 可以优雅的替换掉if ~ else

【1】使用方式一

package main

import "fmt"

func main() {
	// switch 语句的使用
	// 定义初始值
	name := "Dream"
	switch name {
	// 定义判断条件变量名
	case "Dream":
		// 符合条件执行的代码
		fmt.Println("答对了")
	// 定义其他条件
	case "Hope":
		// 符合条件执行的代码
		fmt.Println("打错了")
	}
}

【2】使用方式二

package main

import "fmt"

func main() {
	// switch 语句的使用
	// 定义初始值
	name := "Dream"
	switch {
	// 定义判断条件变量名
	case name == "Dream":
		// 符合条件执行的代码
		fmt.Println("答对了")
	// 定义其他条件
	case name == "Hope":
		// 符合条件执行的代码
		fmt.Println("打错了")
	}
}

【3】方式三

package main

import "fmt"

func main() {
	// switch 语句的使用
	// 定义初始值
	name := "Dream"
	switch name {
	// 定义判断条件变量名 -- , 表示或者
	case "Dream", "Chimeng":
		// 符合条件执行的代码
		fmt.Println("答对了")
	// 定义其他条件
	case "Hope":
		// 符合条件执行的代码
		fmt.Println("打错了")
	}
}

【4】方式四

package main

import "fmt"

func main() {
	// switch 语句的使用
	// 定义初始值
	name := "Dream"
	switch {
	// 定义判断条件变量名 -- , 表示或者
	case name == "Dream" || name == "Chimeng":
		// 符合条件执行的代码
		fmt.Println("答对了")
	// 定义其他条件
	case name == "Hope", name == "Meng":
		// 符合条件执行的代码
		fmt.Println("打错了")
	}
}

【四】default的使用

package main

import "fmt"

func main() {
	// switch 语句的使用
	// 定义初始值
	name := "Meng"
	switch name {
	// 定义判断条件变量名 -- , 表示或者
	case "Dream":
		// 符合条件执行的代码
		fmt.Println("答对了")
	// 定义其他条件
	case "Hope":
		// 符合条件执行的代码
		fmt.Println("打错了")
	default:
		fmt.Println("这是一个默认值")
	}
}

【五】fallthrough的使用

  • 无条件执行下一个 case
package main

import "fmt"

func main() {
	// switch 语句的使用
	// 定义初始值
	name := "Dream"
	switch name {
	// 定义判断条件变量名 -- , 表示或者
	case "Dream":
		// 符合条件执行的代码
		fmt.Println("答对了")
		// 放在语句结尾 , 无条件执行下一个 case
		fallthrough
	// 定义其他条件
	case "Hope":
		// 符合条件执行的代码
		fmt.Println("打错了")
	default:
		fmt.Println("这是一个默认值")
	}

	// 答对了
	// 打错了
}

标签:语句,case,name,fmt,Println,循环,6.0,Go,main
From: https://www.cnblogs.com/dream-ze/p/17826366.html

相关文章

  • 【5.0】Go语言基础之包的使用
    【一】包的作用为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理【二】定义包的步骤【1】新建一个文件夹【2】内部有很多go文件【3】go文件的第一行声明包名在每个go文件的第一行,都要声明包名,并且包名必须一致packageuser【4】在一个文件夹下只能有一个包(......
  • 【8.0】Go语言基础之可变函数参数、map的使用
    【一】可变长参数【1】任意长度的指定类型的参数packagemainimport"fmt"funcmain(){ //可变长参数 //调用函数 foo(1,2,3,4,5,6) //这是接收到的参数a:>>>>[123456] //这是接收到的参数a的类型:>>>>[]int}//可以接收任意长度的int类......
  • 【7.0】Go语言基础之数组、切片
    【一】数组数组是一种类型,可以连续存储数据,但是数据类型的是一致的。类似于Python中的列表,是一种数据结构【1】数组的定义packagemainimport"fmt"funcmain(){ //定义数组 //定义一个长度为3的数组,里面的数据类型为int类型 //定义好数组以后,大小就固......
  • Golang布隆过滤器升级版
    作用:平常使用的布隆过滤器可以用来过滤Redis空数据,避免缓存穿透。升级点:将原本的bool数组位更改为int数组,实现便于删除操作的场景。代码如下:packagemainimport( "fmt")//BloomFilter布隆过滤器typeBloomFilterstruct{ bitArray[]int//升级版结构哈希所落位置+......
  • 2023-11-11:用go语言,字符串哈希+二分的例题。 给定长为 n 的源串 s,以及长度为 m 的模式
    2023-11-11:用go语言,字符串哈希+二分的例题。给定长为n的源串s,以及长度为m的模式串p,要求查找源串中有多少子串与模式串匹配,s'与s匹配,当且仅当s'与s长度相同,且最多有k个位置字符不同。其中1<=n,m<=10^6,0<=k<=5。来自左程云。答案2023-11-11:go代码用灵捷3.5......
  • 2023-11-11:用go语言,字符串哈希+二分的例题。 给定长为 n 的源串 s,以及长度为 m 的模式
    2023-11-11:用go语言,字符串哈希+二分的例题。给定长为n的源串s,以及长度为m的模式串p,要求查找源串中有多少子串与模式串匹配,s'与s匹配,当且仅当s'与s长度相同,且最多有k个位置字符不同。其中1<=n,m<=10^6,0<=k<=5。来自左程云。答案2023-11-11:go代码用......
  • Go实现Zabbix企业微信应用通知告警
    企业微信https://work.weixin.qq.com/企业微信->应用管理->创建应用个人微信也能接收企业微信信息我的企业->微信插件->扫码关注特殊说明之前企业微信只需要调用接口就能实现微信应用通知,最近改版,变得比较复杂1:需要配置可信IP才能发2:配置可信IP前需要先设置可信域名......
  • Fight Hard for Ecological Protection and Governance of the Yellow River to Addre
    1.Effectivemeasureaimedataddressingthewatercontamination:Wewill fight hard for ecological protection and governance of the Yellow River. We will fully implement the requirements of determining the city, the land, the people,......
  • 想入坑golang web,向大佬们请教些问题?
    当你准备入坑Go语言的Web开发时,以下是一些常见的问题,你可以向大佬们请教:如何设置和启动一个GoWeb服务器?Go语言有哪些常用的Web开发框架?它们之间有什么区别和优劣势?Go语言中的路由是如何实现的?如何处理不同的HTTP请求方法和URL参数?Go语言如何处理请求和响应,以及如何......
  • golang json 序列化、反序列化 字符串反序列化
    golangjson序列化、反序列化字符串反序列化在使用Golang进行开发时,经常会遇到需要将一段JSON字符串进行序列化和反序列化的情况。JSON是一种轻量级数据交换格式,常用于前后端数据传输、存储等场景。Golang提供了内置的encoding/json包来处理JSON的序列化和反序列化。JSON的序列化......