运算符and流程控制
运算符
Go 语言内置的运算符有:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算服
算术运算符
| 运算符 | 描述 | 
| + | 相加 | 
| - | 相减 | 
| * | 相乘 | 
| / | 相除 | 
| % | 求余 | 
注意: ++(自增)和--(自减) 在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 if和else都是可选的,可以根据实际需要进行选择。
Go语言规定与if匹配的左括号{必须与if和表达式放在同一行,{放在其他位置会触发编译错误。 同理,与else匹配的{也必须与else写在同一行,else也必须与上一个if或else 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判断里面 也就是说 两者的作用域不一样***

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号