万事开头难

运算符and流程控制

运算符

Go 语言内置的运算符有:

  1. 算术运算符
  2. 关系运算符
  3. 逻辑运算符
  4. 位运算符
  5. 赋值运算服

算术运算符

运算符 描述
+ 相加
- 相减
* 相乘
/ 相除
% 求余

 

 

 

 

 

 

 

注意: ++(自增)和--(自减) 在go语言中是单独的语句,不是运算符 

关系运算符

运算符 描述
== 判断两遍是否相等 如果等于返回True 不等于返回false
!= 判断两遍是否不等 如果不等返回True 等于返回false
> 判断左边是否大于右边 如果是返回 True 否则返回 False。
< 判断左边是否小于右边 如果是返回 True 否则返回 False。
>= 判断左边是否大于或者等于右边 如果是返回 True 否则返回 False。
<= 判断左边是否小于或者等于右边 如果是返回 True 否则返回 False。

 

 

 

 

 

 

 

 

逻辑运算符

运算符 描述
&& 表示python中的and 。 如果两边的操作数都是 True,则为 True,否则为 False。
||  表示python中的or。   如果两边的操作数有一个 True,则为 True,否则为 False。
! 表示python中的not。如果条件为 True,则为 False,否则为 True。

 

 

 

 

 

    // &&表示:and  ||表示:or  !表示:not
    floge1 := true
    floge2 := false
    fmt.Println(floge1 && floge2) // 结果是false  一个为假就返回false
    fmt.Println(floge1 || floge2) // 返回True    一个为真就返回True
    fmt.Println(!floge2)          // 返回True     反值 True为false false为True

位运算符

位运算符对整数中的内存做二进制为进行操作

运算符 描述
& 参与运算的两数各对应的二进位相与。
(两位均为1才为1)
| 参与运算的两数各对应的二进位相或。
(两位有一个为1就为1)
^ 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
(两位不一样则为1)
<<

左移n位就是乘以2的n次方

“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。

>>

右移n位就是除以以2的n次方

“a>>b”是把a的各二进位全部右移b位。

 

 

 

 

 

 

 

 

 

 

 

 

面试题

问题:有一堆数字,如果除了一个数字以外,其他数字都出现了两次,那么如何找到出现一次的数字?
答案: 用"^"异或

赋值运算符

运算符 描述
= 简单的赋值运算符,将一个表达式的值赋给一个左值
+= 相加后再赋值
-= 相减后再赋值
*= 相乘后再赋值
/= 相除后再赋值
%= 求余后再赋值
<<= 左移后赋值
>>= 右移后赋值
&= 按位与后赋值
|= 按位或后赋值
^= 按位异或后赋值
pass

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

流程控制

流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。

go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码,降低重复代码而生的结构,属于扩展类的流程控制

if条件分支

if条件判断基本写法

Go语言中if条件判断的格式如下:

if 表达式1{
    分支1
    }else if{
     分支2  
}else{
      分支3  
}

当表达式1的结果为true时,执行分支1,否则判断表达式2,如果满足则执行分支2,都不满足时,则执行分支3。 if判断中的else ifelse都是可选的,可以根据实际需要进行选择。

Go语言规定与if匹配的左括号{必须与if和表达式放在同一行,{放在其他位置会触发编译错误。 同理,与else匹配的{也必须与else写在同一行,else也必须与上一个ifelse if右边的大括号在同一行。

例子:

    score := 100
    if score == 100 {
        fmt.Println("同学成绩真好")
    } else if score < 100 {
        fmt.Println("还不错")
    } else {
        fmt.Println("需要努力")
    }

if条件判断特殊写法:

func ifDemo2() {
    if score := 65; score >= 90 {
        fmt.Println("A")
    } else if score > 75 {
        fmt.Println("B")
    } else {
        fmt.Println("C")
    }
}

 

注意: 两种写法是有区别的 第一种是全局变量 第二种的变量是只在if判断里面 也就是说 两者的作用域不一样***

 

posted @ 2022-07-09 17:17  Bo7-w  阅读(27)  评论(0编辑  收藏  举报