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\n", s[i])
    }

    for _, c := range s { // 忽略 index
        fmt.Printf("%c\n", c)
    }

    for i, c := range s {
        fmt.Printf("%d, %c\n", 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")
}

猜你喜欢

转载自www.cnblogs.com/xdyixia/p/11861901.html