go循环字符串和switch case的四种写法

循环字符串

使用range 可以循环中文和英文

package main
import ("fmt")

// 入口函数
func main()  {
	str:="hello你好go"
	for key,value:=range str{
		fmt.Printf("key:%v, value:%c\n",key,value)
	}
} 

key:0, value:h
key:1, value:e
key:2, value:l
key:3, value:l
key:4, value:o
key:5, value:你
key:8, value:好
key:11, value:g
key:12, value:o

%v 和%v的区别

循环切片中的每个值

切片就是我们说的数组

package main
import ("fmt")

// 入口函数
func main()  {
	arr:= []string{"hello","world", "张三"}
	for _,value:=range arr{
		fmt.Println(value)
	}
} 

switch case

// 这里的nameText当前函数区域内的全局变量,在当前函数内任何地方可以使用

package main
import ("fmt")

// 入口函数
func main()  {
	nameText := ".aahtml"
	switch nameText {
		case ".html": // 如果nameText 等于 .html,就执行下面的代码
			fmt.Println("html")
			break //符合条件就不会往下继续执行了
		case ".go":
			fmt.Println("go")
			break
		default: // 如果以上条件都不符合的话,就会去执行下面的语句
			fmt.Println("other")
	}
} 

switch case 的另外一种写法

这个nameText是局部变量,并在只能够在switch case中使用,超出这个范围会报错。
和if else中的那种写法是一样的。作用域问题

package main
import ("fmt")
// 入口函数
func main()  {
	// 把变量名称放到和switch 同一行;
	switch nameText := ".go"; nameText {
		case ".html": // 如果nameText 等于 .html,就执行下面的代码
			fmt.Println("html")
			break //符合条件就不会往下继续执行了
		case ".go":
			fmt.Println("go")
			break
		default: // 如果以上条件都不符合的话,就会去执行下面的语句
			fmt.Println("other")
	}
  // 这里访问的话会报错的哈
	// fmt.Println(nameText)
} 

golang中 switch case 下break可以写也可以不写

为了和其他语言保持一致,你可以写也可以不写的哈。
case后面是具体的数值,switch后面需要有一个变量。

func main()  {
	num := 10
	switch num { // case 后面是具体的数值,switch后面需要有一个变量。
		case 1,3,5,7,9: 
			fmt.Println("奇数")
		case 2,4,6,8,10:
			fmt.Println("偶数")
		default:
			fmt.Println("其他")
	}
} 

switch分支还可以使用表达式,这时候 switch 语句后面不需要再跟判断变量

case后面使用条件判断的时候,switch后面直接是花括号,不需要更变量。
这种写法不推荐的。这种写法不推荐的。

func main()  {
	num := 10
	switch  {// switch 语句后面直接是花括号
		case num <18: //这里写的是表达式哈哈
			fmt.Println("未成年")

		case num >=18 && num <65:
			fmt.Println("成年")

		default:
			fmt.Println("老年")
	}
} 

上面是switch case的4种写法

fallthrough语法可以穿透下一个case,只穿透一个case

package main
import ("fmt")

func main()  {
	num := 20
	switch  {// switch 语句后面直接是花括号
		case num > 18: //这里写的是表达式哈哈
			fmt.Println("未成年1")
			fallthrough // 继续执行下一个case(只会穿透下一个)
		case num >=18 && num <65:
			fmt.Println("成年")

		default:
			fmt.Println("老年")
	}
} 

输出:
成年1
成年

posted @ 2026-08-28 22:37  何人陪我共长生  阅读(11)  评论(0)    收藏  举报