19. 数据类型的转换——27. 程序的流程控制
19. 数据类型的转换
一个类型的值转换为另一个类型的值,所有类型转换必须是显示声明
转换后的类型:=要转换的类型(变量)
package main
import "fmt"
func main() {
a := 5
b := 5.0
c := float64(a) //把int转换成float64
d := int(b) //把float64转换成int
//e:=bool(a) 把int转换成布尔类型,这是不可行的,整型是不可转换为布尔类型的
var f float64 = -123.0000901
g := float32(f) //把float64类型转换为float32类型,精度会缺失
fmt.Printf("%T,%f\n", c, c)
fmt.Printf("%T,%d\n", d, d)
fmt.Printf("%T,%f", g, g)
}
输出结果为:
float64,5.000000
int,5
float32,-123.000092
提示:
1.取值范围小的类型转换为取值范围大的类型,才可定义成功,例如:int16——int32
2.取值范围大的类型转换为取值范围小的类型,精度会缺失,例如:int32——int16
3.内存空间分配的大小是不同的
20. 算术运算符
加+ 减- 乘* 除/ 求余% 自增++ 自减--
package main
import "fmt"
func main() {
var a int = 10
var b int = 3
fmt.Println(a + b) //加
fmt.Println(a - b) //减
fmt.Println(a * b) //乘
fmt.Println(a / b) //除
fmt.Println(a % b) //求余
a++ //自增
fmt.Println(a)
a = 10 //在a=10的基础上,自减
a--
fmt.Println(a)
}
输出结果为:
13
7
30
3
1
11
9
21. 关系运算符
判断大小,输出结果为布尔型
- == 是否等于
- != 不等于
package main
import "fmt"
func main() {
var a int = 11
var b int = 10
fmt.Println(a == b)
fmt.Println(a != b)
fmt.Println(a > b)
fmt.Println(a < b)
fmt.Println(a >= b)
fmt.Println(a <= b)
}
输出结果为:
false
true
true
false
true
false
22.逻辑运算符
- && ---逻辑AND运算符,两边操作数都为true,输出为true,否则为false
- || ---逻辑OR运算符,两边操作其中之一为true,输出为true,否则为flase
- ! ---逻辑NOT运算符,若为true,输出为false,若为false,输出为true
package main
import "fmt"
func main() {
var a bool = false
var b bool = true
fmt.Println(a && b) //AND
fmt.Println(a || b) //OR
fmt.Println(!a, !b) //NOT
}
输出结果为:
false
true
true false
23. 位运算符
- & 按位,都是1结果为1,否则是0
- | 按位,其中一个是1则是1,否则是0
- ^ 按位异,不同则为1,相同则为0
- >> 向右移两位
- << 向左移两位
package main
import "fmt"
func main() {
var a uint = 13 //0000 1101 //二进制总共8位,不足8位则向左边添0
var b uint = 60 //0011 1100
var c uint = 0
c = a & b //& 都是1结果为1,否则是0
fmt.Printf("%d,%b\n", c, c) //%b代表二进制,%d代表十进制
c = a | b // | 其中一个是1则是1,否则是0
fmt.Printf("%d,%b\n", c, c)
c = a ^ b // ^ 不同则为1,相同则为0
fmt.Printf("%d,%b\n", c, c)
c = a >> 2 // >>向右移两位
fmt.Printf("%d,%b\n", c, c)
c = a << 2 // <<向左移两位
fmt.Printf("%d,%b\n", c, c)
}
输出结果为:
12,1100
61,111101
49,110001
3,11
52,110100
24. 赋值运算符
1.=赋值
2.+=先加后赋值
3.-=先减后赋值
4.*=先乘后赋值
5./=先除后赋值
6.%=余数赋值
package main
import "fmt"
func main() {
var a int = 10
var b int
b = a
fmt.Println(b)
b += a //b=b+a
fmt.Println(b)
b = 10
b -= a //b=b-a
fmt.Println(b)
b = 10
b *= a //b=b*a
fmt.Println(b)
b = 10
b /= a //b=b/a
fmt.Println(b)
b = 10
b %= a //b/a的余数
fmt.Println(b)
}
输出结果为:
10
20
0
100
1
0
25. 拓展之获取键盘输入
fmt.Println() 打印并换行
fmt.Printf() 格式化输出
fmt.Print() 打印输出
fmt.Scanln() 接受输入Scan
fmt.Scanf() 接受输入 格式化输入 作业
fmt.Scan() 接受输入 作业
package main
import "fmt"
func main() {
var x int
var y float64
fmt.Println("请输入两个数,1.整数 2.浮点数")
fmt.Scanln(&x, &y) //&取地址符
fmt.Println("x:", x, "y:", y)
}
输出结果为:
请输入两个数,1.整数 2.浮点数
1 3.14
x: 1 y: 3.14
26.代码规范
代码规范在团队项目中尤为重要
书写易于自己及他人理解的代码
27.程序的流程控制
1.顺序结构
从上到下,逐行执行
2.选择结构:满足某种条件才会执行
- if
- switch
- select
3.循环结构
for