zoukankan      html  css  js  c++  java
  • go语言入门(3)运算符及流程控制

    1,运算符

    算数运算符:+   -   *   /   %   ++   --

    关系运算符:==    !=    <    >    <=    >==

    逻辑运算符:按位与 &  按位或 |  异或 ^  左移<<  右移 >>

    赋值运算符:=    +=  -=  *=  /=  等等算数运算符和逻辑运算符与 = 组合

    其他运算符

    运算符      术语      示例          说明
    &      取地址运算符     &a        变量a的地址
    *      取值运算符       *a      指针变量a所指向内存的值

    2,流程控制

    Go语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。

    选择结构

    1)if

        var a int = 3
        if a == 3 { //条件表达式没有括号
            fmt.Println("a==3")
        }
    
        //支持一个初始化表达式, 初始化字句和条件表达式直接需要用分号分隔
        if b := 3; b == 3 {
            fmt.Println("b==3")
        }

    if ... else

        if a := 3; a == 4 {
            fmt.Println("a==4")
        } else { //左大括号必须和条件语句或else在同一行
            fmt.Println("a!=4")
        }

    if ... else if ... else

        if a := 3; a > 3 {
            fmt.Println("a>3")
        } else if a < 3 {
            fmt.Println("a<3")
        } else if a == 3 {
            fmt.Println("a==3")
        } else {
            fmt.Println("error")
        }

    2)switch

    Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码:

       var score int = 90
    
        switch score {
        case 90:
            fmt.Println("优秀")
            //fallthrough
        case 80:
            fmt.Println("良好")
            //fallthrough
        case 50, 60, 70:
            fmt.Println("一般")
            //fallthrough
        default:
            fmt.Println("")
        }

    循环结构

    1)for

     var i, sum int
    
        for i = 1; i <= 100; i++ {
            sum += i
        }
        fmt.Println("sum = ", sum)

    2)rang

    关键字 range 会返回两个值,第一个返回值是元素的数组下标,第二个返回值是元素的值

        s := "abc"
        for i := range s { //支持 string/array/slice/map。
            fmt.Printf("%c
    ", s[i])
        }
    
        for _, c := range s { // 忽略 index
            fmt.Printf("%c
    ", c)
        }
    
        for i, c := range s {
            fmt.Printf("%d, %c
    ", i, c)
        }

    跳转语句

    1)break和continue

       for i := 0; i < 5; i++ {
            if 2 == i {
                //break    //break操作是跳出当前循环
                continue //continue是跳过本次循环
            }
            fmt.Println(i)
        }

    注意:break可⽤于for、switch、select,⽽continue仅能⽤于for循环。

    2)goto

    用goto跳转到必须在当前函数内定义的标签

    func main() {
        for i := 0; i < 5; i++ {
            for {
                fmt.Println(i)
                goto LABEL //跳转到标签LABEL,从标签处,执行代码
            }
        }
    
        fmt.Println("this is test")
    
    LABEL:
        fmt.Println("it is over")
    }
  • 相关阅读:
    mtu
    OC2_使用系统协议
    OC1_协议语句
    Json文件/网址解析
    文件归档
    Plist文件
    NS-Date/NSDateFormatter
    OC10_文件练习
    OC9_文件操作
    OC8_NSData
  • 原文地址:https://www.cnblogs.com/xdyixia/p/11861901.html
Copyright © 2011-2022 走看看