首页 > 编程语言 ># 19. 数据类型的转换——27. 程序的流程控制

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

时间:2022-10-28 22:00:35浏览次数:40  
标签:27 19 fmt 数据类型 var int Println main true

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

标签:27,19,fmt,数据类型,var,int,Println,main,true
From: https://www.cnblogs.com/liujianbin/p/16837655.html

相关文章

  • 【EA的练习赛2】【洛谷P7274】草地(单调栈,LCT维护最小生成树)
    学到了很多。我们分步走。首先在做这道题前先观察到几个小性质:操作顺序不同不影响结果发现对于每一个黑点,一通操作过后它扩展出的区域是一个矩形,而操作顺序是不影响......
  • 【CTS2019】珍珠(计数,容斥,NTT)
    题意:称一个长度为\(n\),值域为\([1,D]\)整数序列为合法序列,当且仅当序列中能选出\(m\)对数相等。问合法序列数。\(1\leqD\leq10^5,1\leqn,m\leq10^9\)。题解:设......
  • chap4 循环结构、chap6 回顾数据类型和表达式 第七小组 学习总结
    chap4循环结构第七小组学习总结循环语句有以下几种:1.for循环语句 (1)使用方法:     for(初始条件;循环条件;结束操作){循环语句;}(2)优点:循环有序,层层递进  ......
  • 【BZOJ2127】happiness(网络流)
    建模:首先\(S\)向每一个\((i,j)\)连一条它选文科的价值的边,每一个\((i,j)\)向\(T\)连一条它选理科的价值的边。然后对于两个点\(a,b\),假设他们同时选理科能获得......
  • 【ARC127F】±AB
    给定\(a,b,L,R\),找到最小的\(p\geq0\),使得\(pa\bmodb\in[L,R]\)。设\(qb\leqpa<(q+1)b\)。等价于找到最小的\(q\geq0\),使得存在\(qb\leqpa<(q+1)b\)满足\(p......
  • 【ABC196F】Substring 2(多项式乘法)
    我竟然能在AT当场做出F题!哦,是ABC啊,没事了。以下的字符串均从\(1\)开始记位。以下设\(S_i\)表示字符串\(S\)的第\(i\)位,\(S(l,r)\)表示字符串\(S\)的第......
  • IIS安装不了 ASP.NET (4.0.30319.0)
     如图所示没有怎办?IIS没有  ASP.NET(4.0.30319.0) 我的电脑win10专业版(家庭版升级来的)现象再现:今日在Win10上面ASP.NET网站突然不能跑了,过程再现:根据资料提示......
  • 尝鲜VS2019 版本
    1.首先新的界面改了。 启动界面成这样了。2.代码预览加了滑动窗口预览3.新版本2019对.net5.0支持更加全面。这个具体看微软光官方的解释!4.VS2019皮肤和原来稍有不同同......
  • Redis的五大数据类型的底层实现
    Redis的五大数据类型的底层实现redis是以键值对储存数据的,所以对象又分为对象喝键值对象即,存储一个key-value键值对会创建两个对象,键对象和值对象。对象可以是5大对象中......
  • 20221027&20221028 神经网络入门:神经网络判断奇偶数
    神经网络https://www.ibm.com/cn-zh/cloud/learn/neural-networks神经网络反映人类大脑的行为,允许计算机程序识别模式,以及解决人工智能、机器学习和深度学习领域的常见......