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

发布时间 2023-11-11 21:07:43作者: Chimengmeng

【一】判断语句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("这是一个默认值")
	}

	// 答对了
	// 打错了
}