文章目录
1. 算数运算符
package main
import (
"fmt"
)
func main() {
//重点讲解 /、%
//说明,如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分
fmt.Println(10 / 4)
var n1 float32 = 10 / 4 //
fmt.Println(n1)
//如果我们希望保留小数部分,则需要有浮点数参与运算
var n2 float32 = 10.0 / 4
fmt.Println(n2)
// 演示 % 的使用
// 看一个公式 a % b = a - a / b * b
// fmt.Println("10%3=", 10 % 3) // =1
// fmt.Println("-10%3=", -10 % 3) // = -10 - (-10) / 3 * 3 = -10 - (-9) = -1
// fmt.Println("10%-3=", 10 % -3) // =1
// fmt.Println("-10%-3=", -10 % -3) // =-1
// ++ 和 --的使用
var i int = 10
i++ // 等价 i = i + 1
fmt.Println("i=", i) // 11
i-- // 等价 i = i - 1
fmt.Println("i=", i) // 10
if i > 0 {
fmt.Println("ok")
}
}
注意:
- 自增自减只能独立使用
- ++和–只能写后面
2. 关系(比较)运算符
package main
import (
"fmt"
)
func main() {
//演示关系运算符的使用
var n1 int = 9
var n2 int = 8
fmt.Println(n1 == n2) //false
fmt.Println(n1 != n2) //true
fmt.Println(n1 > n2) //true
fmt.Println(n1 >= n2) //true
fmt.Println(n1 < n2) //flase
fmt.Println(n1 <= n2) //flase
flag := n1 > n2
fmt.Println("flag=", flag)
}
3. 逻辑运算符
package main
import (
"fmt"
)
//声明一个函数(测试)
func test() bool {
fmt.Println("test....")
return true
}
func main() {
var i int = 10
//短路与
//说明 因为 i < 9 为 false ,因此后面的 test() 就不执行
// if i < 9 && test() {
// fmt.Println("ok...")
// }
if i > 9 || test() {
fmt.Println("hello...")
}
/*
//演示逻辑运算符的使用 &&
var age int = 40
if age > 30 && age < 50 {
fmt.Println("ok1")
}
if age > 30 && age < 40 {
fmt.Println("ok2")
}
//演示逻辑运算符的使用 ||
if age > 30 || age < 50 {
fmt.Println("ok3")
}
if age > 30 || age < 40 {
fmt.Println("ok4")
}
//演示逻辑运算符的使用 !
if age > 30 {
fmt.Println("ok5")
}
if !(age > 30) {
fmt.Println("ok6")
} */
}
4. 赋值运算符
package main
import (
"fmt"
)
func test() int {
return 90
}
func main() {
//赋值运算符的使用演示
// var i int
// i = 10 //基本赋值
//有两个变量,a和b,要求将其进行交换,最终打印结果
// a = 9 , b = 2 ==> a = 2 b = 9
a := 9
b := 2
fmt.Printf("交换前的情况是 a = %v , b=%v \n", a, b)
//定义一个临时变量
t := a
a = b //
b = t //
fmt.Printf("交换后的情况是 a = %v , b=%v \n", a, b)
//复合赋值的操作
a += 17 // 等价 a = a + 17
fmt.Println("a=", a)
var c int
c = a + 3 // 赋值运算的执行顺序是从右向左
fmt.Println(c)
//2)赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值
// 表达式:任何有值都可以看做表达式
var d int
d = a //
d = 8 + 2 * 8 // =的右边是表达式
d = test() + 90 // =的右边是表达式
//d = 890 // 890常量
fmt.Println(d)
}
5. 位运算符
6. 键盘输入语句
- 导入 fmt 包
- 调用 fmt 包的 fmt.Scanln() fmt.Scanf()
package main
import (
"fmt"
)
func main() {
//要求:可以从控制台接收用户信息,【姓名,年龄,薪水, 是否通过考试 】。
//方式1 fmt.Scanln
//1先声明需要的变量
var name string
var age byte
var sal float32
var isPass bool
// fmt.Println("请输入姓名 ")
// //当程序执行到 fmt.Scanln(&name),程序会停止在这里,等待用户输入,并回车
// fmt.Scanln(&name)
// fmt.Println("请输入年龄 ")
// fmt.Scanln(&age)
// fmt.Println("请输入薪水 ")
// fmt.Scanln(&sal)
// fmt.Println("请输入是否通过考试 ")
// fmt.Scanln(&isPass)
// fmt.Printf("名字是 %v \n 年龄是 %v \n 薪水是 %v \n 是否通过考试 %v \n", name, age, sal, isPass)
//方式2:fmt.Scanf,可以按指定的格式输入
fmt.Println("请输入你的姓名,年龄,薪水, 是否通过考试, 使用空格隔开")
fmt.Scanf("%s %d %f %t", &name, &age, &sal, &isPass)
fmt.Printf("名字是 %v \n年龄是 %v \n 薪水是 %v \n 是否通过考试 %v \n", name, age, sal, isPass)
}
7. 进制
- %b 表示二进制输出
- 0开头表示8进制
- 0x开头表示
package main
import (
"fmt"
)
func main() {
var i int = 5
//二进制输出
fmt.Printf("%b \n", i)
//八进制:0-7 ,满8进1. 以数字0开头表示
var j int = 011 // 011=> 9
fmt.Println("j=", j)
//0-9及A-F,满16进1. 以0x或0X开头表示
var k int = 0x11 // 0x11=> 16 + 1 = 17
fmt.Println("k=", k)
}
8. 位运算
package main
import (
"fmt"
)
func main() {
//位运算的演示
fmt.Println(2&3) // 2
fmt.Println(2|3) // 3
fmt.Println(2^3) // 3
fmt.Println(-2^2) //-4
a := 1 >> 2 //0
c := 1 << 2 //4
fmt.Println("a=", a, "c=", c)
}