Golang学习之流程控制

流程控制

Go语言中常用的流程控制有iffor,而switchgoto是为了简化代码,降低重复代码而扩展的流程控制。

if……else

func main() {
	var num = 10
	if num == 10 {
		fmt.Println("hello == 10")
	} else if num > 10 {
		fmt.Println("hello > 10")
	} else {
		fmt.Println("hello < 10")
	}
}

注意这种写法,num2是局部变量

if num2:= 10; num2>=10 {
    fmt.Println("hello >=10")
}

for循环结构

基本格式

for 初始语句; 条件表达式; 结束语句 {
	循环体
}

在Go语言中,没有while语句,可以通过for来代替

for {
    循环体
}

for循环可以通过breakgotoreturnpanic等语句退出循环

for …… range 键值循环

for range循环结构用于遍历数组,切片,字符串,Map及通道,其中

  • 数组、切片、字符串返回索引和值
  • map返回键和值
  • 通道channel只返回通道内的值

遍历字符串

var str = "你好golang"
for key, value := range str {
    fmt.Printf("%v - %c ", key, value)
//0 - 你 3 - 好 6 - g 7 - o 8 - l 9 - a 10 - n 11 - g 
}

遍历切片(数组)

var array = []string{"php", "java", "node", "golang"}
for index, value := range array {
    fmt.Printf("%v %s ", index, value)
}
//0 php 1 java 2 node 3 golang 

switch case 结构

用switch语句可方便的对大量的值进行条件判断

eg := ".a"
switch eg {
	case ".h": {
		fmt.Println(".h")
		break
	}
	case ".d": {
		fmt.Println(".d")
		break
	}
	case ".j": {
		fmt.Println(".j")
	}
	default: {
		fmt.Println("其它后缀")
	}
}
// 其他后缀

switch的另外一种写法

switch eg := ".a"; eg {
	case ".h": {
		fmt.Println(".h")
		break
	}
	case ".d": {
		fmt.Println(".d")
		break
	}
	case ".j": {
		fmt.Println(".j")
	}
	default: {
		fmt.Println("其它后缀")
	}
}

同时一个分支可以有多个值

eg := ".t"
switch eg {
	case ".h": {
		fmt.Println(".h")
		break
	}
	case ".t",".d": {
		fmt.Println("传递文档")
		break
	}
	case ".j": {
		fmt.Println(".j")
	}
	default: {
		fmt.Println("其它后缀")
	}
}

在golang中,break可以不写,也能够跳出case,而不会执行其它的

break:跳出循环

  • 用于循环语句中跳出循环,并开始执行循环之后的语句
  • break在switch(开关语句)中在执行一条case后跳出语句的作用
  • 在多重循环中,可以用标号label标出想break的循环

goto:跳转到指定标签

goto 语句通过标签进行代码间的无条件跳转

	var n = 20
	if n > 24 {
		fmt.Println("成年人")
	} else {
		goto lable3
	}

	fmt.Println("aaa")
	fmt.Println("bbb")
lable3:
	fmt.Println("ccc")
	fmt.Println("ddd")
// ccc ddd
posted @   Kuofluo  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示