# 19. 数据类型的转换——27. 程序的流程控制

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.逻辑运算符

  1. && ---逻辑AND运算符,两边操作数都为true,输出为true,否则为false
  2. || ---逻辑OR运算符,两边操作其中之一为true,输出为true,否则为flase
  3. ---逻辑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

posted @ 2022-10-28 21:52  归故归谷糕  阅读(37)  评论(0)    收藏  举报