本文发布于Cylon的收藏册,转载请著名原文链接~

算术运算符

运算符 示例 结果
+ 10 + 5 15
- 10 - 5 5
* (除数不能为0) 10 * 5 50
/ 10 / 5 2
% (除数不能为0) 10 % 3 1
++ a = 0; a++ a = 1
a = 2; a– a = 1

总结

  • 除法/取余运算除数不能为0
  • 只有后自增/减,没有前自增/减。没有 ++a--a 只有 a++a--

输入半径,计算圆的面积和周长并打印出来(PI为3.14)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package main

import "fmt"

func main() {
	const PI = 3.14

	fmt.Println("请输入半径:")
	var r float64
	fmt.Scan(&r)

	fmt.Printf("面积为:%.2f\n", 2*PI*r)
	fmt.Printf("周长为:%.2f\n", PI*r*r)
}

某学生三门课成绩为,语文90,数学89,英语69,编程求总分与平均分

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package main

import "fmt"

func main() {
	var (
		chinese = 90
		math    = 89
		english = 69
	)
	score := chinese + math + english
	//avg := score / 3 // 此处是整数值
	avg := float64(score) / 3

	fmt.Printf("总分为:%d\n", score)
	fmt.Printf("平均分为:%.2f\n", avg)
}

问题: 计算商品价格

问题1: 某商店T-shirt的价格为35圆/件,裤子的价格120圆/条,小明在该店购买了3件t-shirt和2条裤子,并且打8.8折,小明应该付多少钱

问题2:如上题打完8.8折后,出现小数,商店为了方便结算只收取商品整数部分的钱,如 303.6,则只收取303元。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package main

import "fmt"

func main() {
	var (
		tshirt   = 35
		trousers = 120
	)

	total := 3*tshirt + 2*trousers

	realMember := float64(total) / 0.88
	fmt.Printf("打88折后价格为:%.2f\n", realMember)
	fmt.Printf("只收取整钱为:%d", int(realMember))
}

赋值运算符

运算符 说明 实例
= 普通赋值 c = a + b 将a + b表达式结果赋值给c
+= 相加后在赋值 c += a 等价于 c = c + a
-= 相减后再赋值 c -= a 等价于 c = c - a
*= 相乘后再赋值 c *= a 等价于 c = c * a
/= 相除后再赋值 c /= a 等价于 c = c / a
%= 取余后再赋值 c %= a 等价于 c = c % a

算数运算符优先级高于赋值运算符

1
2
3
4
5
6
7
8
9
package main

import "fmt"

func main() {
	num := 20
	num %= 2 + 3
	fmt.Println(num)
}

关系运算符

关系运算符的结果是布尔类型的

优先级 算数 > 关系 > 赋值

运算符 说明
== 相等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于

逻辑运算符

&& || !

逻辑非后面的内容是bool类型

逻辑非的运算优先级高于关系运算符

逻辑与/逻辑或运算符优先级低于关系运算符

&& 逻辑与的优先级高于 || fmt.Println(1 > 2 || 2 > 1 && 10 != 10)

单目运算符:指运算所需变量为一个运算符,即在运算当中只有一个操作数。如:a++b--!test&

双目运算符:运算所需比那里为两个运算符叫做双目运算符。如:a + ba >= b

运算符优先级

算数运算符 * / % > 算数运算符 + - > 比较运算符 < > >= <= == != > 逻辑运算符 && > 逻辑运算符 || > 赋值运算符

运算符总结

  • 运算符分为单目运算符双目运算符与特殊运算符 () .
  • 逻辑运算的结果同样也是bool类型
  • 逻辑运算符两边放的一般都是关系运算或者bool类型的值
  • 逻辑非运算符的运算优先级要高于关系运算符
  • 单目运算符是指运算所需变量为一个运算符,即在运算当中只有一个操作数
  • 运算所需变量为两个运算符的叫做双目运算符
  • 单目运算符的优先级高于双目运算符
  • 比较运算符优先级高于逻辑与
  • 逻辑与的运算级别高于逻辑或

本文发布于Cylon的收藏册,转载请著名原文链接~

链接:https://www.oomkill.com/2019/10/go-arithmetic/

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。