zoukankan      html  css  js  c++  java
  • Golang的流程控制

    流程控制

    • 条件语句

    例:

    var b bool = true
    if b{
    	fmt.Print("b是True")
    }else{
    	fmt.Print("b是false")
    }
    

    条件语句注意事项:

    1. 条件语句不需要使用括号将条件包含起来();
    2. 无论语句体内有几条语句,花括号{}都是必须存在的;
    3. 左花括号{必须与if或者else处于同一行;
    4. 在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔;
    5. 在有返回值的函数中,不允许将“最终的”return语句包含在if...else...结构中,
      否则会编译失败:

    例如:

    func example(x int) int {
    if x == 0 {
        return 5
        } else {
        return x
        }
    }
    
    • 选择语句:
    	i := 2
    	switch i{
    	case 0:
    		fmt.Print("i == 0")
    	case 1:
    		fmt.Print("i == h1")
    	case 2:
    		fallthrough
    	case 3,4,5:
    		fmt.Print("3,4,5")
    	default:
    		fmt.Print("default")
    	}
    

    switch也可以写成这样:

    switch {
        case 0 <= Num && Num <= 3:
            fmt.Printf("0-3")
        case 4 <= Num && Num <= 6:
            fmt.Printf("4-6")
        case 7 <= Num && Num <= 9:
            fmt.Printf("7-9")
    }
    

    注意事项:

    1. 左花括号{必须与switch处于同一行;
    2. 条件表达式不限制为常量或者整数
    3. 单个case中,可以出现多个结果选项;
    4. 与C语言等规则相反,Go语言不需要用break来明确退出一个case;
    5. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;
    6. 可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个
      if...else...的逻辑作用等同
    • 循环语句

    Golang循环只支持for关键字,不支持while和do while

    sum := 0
    for i := 0;i<10;i++{
        sum += 1
    }
    

    go语言中的无限循环

    sum := 0
    for{
        sum ++
        fmt.printin(sum)
    }
    

    go语言的for循环同样支持continue和break来循环控制

    	for i := 0;i<5;i++{
    		for j := 0 ;j < 10;j++{
    			if j == 5{
    				continue //结束当前循环
    			}
    			fmt.Println(j)
    		}
    		if !(i == 3 || i >3){
    			fmt.Println("取反")
    		}else{
    			break
    			// 结束当前循环
    		}
    
    	}
    
    • 跳转语句
    func myfunc() {
    	i := 0
    	HERE:
    	fmt.Println(i)
    	i++
    	if i < 10 {
    		goto HERE
    	}
    }
    
  • 相关阅读:
    java操作elasticsearch实现批量添加主要使用了bulk
    es java scroll滚动查询
    利用Redis Sorted Set实现排行榜功能
    Elasticsearch -删除索引(index)
    Redis简单案例(一) 网站搜索的热搜词
    283 约束布局之1—约束布局简介
    282 Android基本布局之4—网格布局实现计算器布局
    使用Layui、Axios、Springboot(Java) 实现EasyExcel的导入导出(浏览器下载)
    layui在toolbar使用上传控件在reload后失效的问题解决
    axios提交表单
  • 原文地址:https://www.cnblogs.com/wualin/p/10643631.html
Copyright © 2011-2022 走看看