4-Go常量和运算符

一、常量

  • 常量定义:定义常量时没有指定类型,根据所赋的值确定。但是一定要注意不能写成 “:=” 的形式
    • 程序运行期间,不可以改变的量
    • 使用const创建常量,建议常量名称大写
    • 不能打印常量地址
  • 字面常量:所谓字面常量(literal),是指程序中硬编码的常量
    • 123:整型类型常量
    • 156.78:浮点类型的常量
    • true:布尔类型的常量
    • “abc”:字符串类型的常量
func main()  {
	// const PI float64 = 3.14
	const PI  = 3.14
	// PI = 3.15 // 不允许修改常量的值
	// fmt.Printf("%p",&PI) // 不允许打印常量的地址
	fmt.Printf("%.2f",PI)
}
  • 常量命名规范
    • 只能由数字,字母,_(下划线)组成
    • 不能以数字开头
    • 大写字母和小写字母是不同的,但是建议全部大写
    • 不能是关键字
    • 见名知意
    • 多个单词组成的名称,使用全大写字母书写,中间使用 _ (下划线)分隔:const APP_VER = "0.7.0.1110 Beta"
  • 普通枚举:go语言中特殊的常量
    在这里插入图片描述
  • 自增枚举iota:表示这组const的值是自增的
    在这里插入图片描述
  • iota跳过使用
    在这里插入图片描述

二、算术运算符

  • 算符运算符
    • 除法运算除数不能为0
    • 取余运算除数不能为0
    • 只有后自增,没有前自增
    • 只有后自减,没有前自减
      在这里插入图片描述
func main()  {
	var num1 int = 20
	var num2 int = 0
	/*
		fmt.Println("num1 + num2 =",num1+num2)
		fmt.Println("num1 - num2 =",num1-num2)
		fmt.Println("num1 * num2 =",num1*num2)
		fmt.Println("num1 / num2 =",num1/num2)
		fmt.Println("num1 % num2 =",num1%num2)
	*/
	fmt.Println(num1%num2)

	var num int = 10
	// num = num + 1
	// num++ // 将num变量中的值取出来然后进行加1运算,运算完成后重新赋值给变量num.注意:++只能写在变量名称的后面。
	num--
	fmt.Println("num= ",num)
}
  • 案例:求圆的面积与周长
func main()  {
	// 1:确定出π的取值
	const PI = 3.14
	// 2:接收用户输入的半径
	fmt.Println("请输入半径:")
	var r float64
	fmt.Scan(&r)
	// 3:计算圆的面积
	area := PI*r*r
	// 4:计算圆的周长
	p := 2*PI*r
	// 5:打印输出结果
	fmt.Printf("面积是%.2f\n",area)
	fmt.Printf("周长是%.2f",p)
}
  • 案例:计算总分与平均分
func main()  {
	// 某学生三门课成绩为,语文:90,数学:89,英语:69,编程求总分与平均分。
	var chinese int = 90
	var math int = 89
	var english int = 69
	// 计算总分
	score := chinese+math+english
	// 平均分
	avg := float64(score)/3
	fmt.Printf("总分为%d\n",score)
	fmt.Printf("平均分:%.2f",avg)
}
  • 案例:计算商品价格
func main()  {
	/*
		问题1:某商店T恤(T-shirt)的价格为35元/件,裤子(trousers)的价格为120元/条。
		      小明在该店买了3件T恤和2条裤子,并且打8.8折。请计算并显示小明应该付多少钱?
		问题2:如上题中打完8.8折后出现小数,商店为了结算方便,
		      只收用户整数部分的钱,如本应收用户303.6,现在只收用户303元,应该如何做?
	*/
	var shirt int = 35
	var trousers int = 120
	totalMoney := shirt*3+trousers*2
	realMoney := float64(totalMoney)*0.88
	fmt.Printf("支付:%d",int(realMoney))
}

三、赋值运算符

在这里插入图片描述

func main()  {
	var num int = 10
	num %= 2+3 // num %= 5   num = num%5
	/*
		num += 10 // num = num+10
		num -= 5 // num = num -5
		num *= 3
		num /= 3
		num %= 2
	*/
	fmt.Println("num=",num)
}

四、关系运算符

在这里插入图片描述

func main()  {
	var num1 int = 10
	var num2 int = 20
	sum := num1+20 > num2
	fmt.Println("sum=",sum)
	/*
	fmt.Println("num1==num2", num1==num2)
	fmt.Println("num1!=num2", num1!=num2)
	fmt.Println("num1>num2",  num1>num2)
	fmt.Println("num1<num2",  num1<num2)
	fmt.Println("num1>=num2", num1>=num2)
	fmt.Println("num1<=num2", num1<=num2)
	*/
}

五、逻辑运算符

在这里插入图片描述

  • 逻辑运算符
    • 逻辑运算的结果是bool类型
    • 逻辑运算符两边放的一般都是关系运算或者bool类型的值
  • 单目运算符:指运算所需变量为一个的运算符,即在运算当中只有一个操作数;例如:++,–,!,&
  • 双目运算符:运算所需变量为两个的运算符叫做双目运算符;例如:+,-,*,/, <=,>=等等
func main() {
	var num1 int = 10
	var num2 int = 20
	isResult := num1 > num2
	fmt.Println("isResult=", !isResult)
	// fmt.Println(!num1 > num2) // 逻辑非后面的变量是布尔类型。逻辑非的运算优先级高于关系运算符。
	fmt.Println(!(num1 > num2)) // 括号的优先级要高于逻辑非。
	// 逻辑与
	fmt.Println(num1 > num2 && num1 == 10) // 逻辑与运算符优先级低于关系运算符。
	// 逻辑或
	fmt.Println(num1 > num2 || num1 == 10) // 逻辑或的运算优先级低于关系运算符。
	fmt.Println(num1 < num2 || num1 > num2 && num1 != 10) // 逻辑与的优先级高于逻辑或。
}

六、运算符优先级

  • 第一优先级:特殊运算符
    • ():括号
    • .:包名.函数名
  • 第二优先级:单目运算符
    • !:逻辑非
    • &:取地址
  • 第三优先级:双目运算符
    • 算符运算符:*,/, %
    • 算符运算符:+,-
    • 比较运算符:>,<,>=,<=,==,!=
    • 逻辑运算符:&&
    • 逻辑运算符:||
    • 赋值运算符:=, +=, -=, *=, /=
  • 案例:判断闰年
func main()  {
	/*
	闰年的判定(符合下面两个条件之一)
	年份能够被400整除.(2000)
	年份能够被4整除但不能被100整除.(2008)
	 */
	fmt.Println("请输入要判断闰年的年份:")
	var year int
	fmt.Scan(&year)
	b := year % 400 == 0 || year % 4 == 0 && year % 100 !=0
	fmt.Println(b)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无休止符

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值