Go笔记(2) | 青训营笔记

41 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

运算符

算术运算符

image-20230114104324900

var a int = 10
var b int = 10
fmt.Println(a--)//会报错
a++
fmt.Println(a)

关系运算符

image-20230114105141896

逻辑运算符

image-20230114105742234

位运算符

image-20230114184314859

&变量 = 去变量地址符 值&值 = 位运算符

异或 ^ 可以看作按位运算的无进位相加

赋值运算符

image-20230114220552220

其他运算符(指针)

image-20230114220814094

键盘输入输出

func main() {
    var x int
    var y float64//fmt.Println() 输出并且换行
    //fmt.Printf()  格式化输出
    //fmt.Print()   输出
​
    fmt.Println("请输入两个数 1.整数 2.浮点数")1
    //变量取地址 &变量
    fmt.Scanln(&x, &y)
    fmt.Println(x, y)
    //fmt.Scanf() //格式化输入
    //fmt.Scan()
}

流程控制

image-20230114222431312

if语句

func main() {
    var score int = 90
    if score >= 90 && score <= 100 {
        fmt.Println("A")
        if score == 100{
            fmt.Println("S")
        }
    } else if score >= 80 && score < 90 {
        fmt.Println("B")
    } else {
        fmt.Println("C")
    }
}

switch语句

func main() {
    var score int = 50
    switch score {
    case 90:
        fmt.Println("A")
    case 80:
        fmt.Println("B")
    case 50, 60, 70: //可以多个变量
        fmt.Println("C")
    default:
        fmt.Println("D")
    }
} 
​
    //switch默认条件 bool = true
    switch {
    case false:
        fmt.Println("flase")
    case true:
        fmt.Println("true")
    default:
        fmt.Println("其他")
    }
    
    a := false
    switch a {
    case false:
        fmt.Println("flase")
    case true:
        fmt.Println("true")
    default:
        fmt.Println("其他")
    }

switch能接收任意类型的变量

不用break暂停

可以多个变量,用逗号隔开,匹配一个即可

fallthrough 贯穿

image-20230114224859036

    var score int = 90
    switch score {
    case 90:
        fmt.Println("A")
        fallthrough
    case 80:
        fmt.Println("B")
        if score == 90{
            break
        }//用来中止fallthrough
        fallthrough
    case 50, 60, 70:
        fmt.Println("C")
        fallthrough
    case 40:
        fmt.Println("D")
        fallthrough
    default:
        fmt.Println("E")
    }
    //就是下一句 case 不是后面所有的

for循环

func main() {
    for i := 1; i <= 10; i++ {
        fmt.Println(i)
    }
    
    i := 1
    for i <= 10 {
        fmt.Println(i)
        i++
    }
    
    for i := 1; i < 10; i++ {
        for j := 1; j <= i; j++ {
            fmt.Printf("%d*%d=%d\t", i, j, i*j)
        }
        fmt.Println()
​
    }
}

break continue

遍历string

func main() {
    str := "hello .lll"
    fmt.Println(str)
​
    //获取字符串长度 len
    fmt.Println("字符串长度为:", len(str))
​
    //获取指定的字节
    fmt.Println("第一个字节打印", str[0])
    fmt.Printf("%c\n", str[0])
​
    //for i := 0; i < len(str); i++ {
    //  fmt.Println(str[i])
    //  fmt.Printf("%c", str[i])
    //}//for range循环,遍历数组切片
    //返回下标和对应的值,使用这个值就可以了
    for i, v := range str {
        fmt.Println(i)
        fmt.Println(v)
        //fmt.Printf("%c", v)
​
    }
​
    //string值是不能修改de
}