// 实例
package main
import"fmt"
func main(){
var a int =21
var b int =10
var c int
c = a + b
fmt.Printf("\033[31m第一行 c 的值为: %d\033[0m\n",c)
c = a - b
fmt.Printf("\033[32m第二行 c 的值为: %d\033[0m\n",c)
c = a * b
fmt.Printf("\033[33m第三行 c 的值为: %d\033[0m\n",c)
c = a / b
fmt.Printf("\033[34m第四行 c 的值为: %d\033[0m\n",c)
c = a % b
fmt.Printf("\033[35m第五行 c 的值为: %d\033[0m\n",c)
a++
fmt.Printf("\033[36m第六行 c 的值为: %d\033[0m\n",a)
a =21 // 为了方便测试, a 这里重新赋值为21
a--
fmt.Printf("\033[37m第七行 c 的值为: %d\033[0m\n",a)}
以上实例运行结果:
第一行 c 的值为: 31
第二行 c 的值为: 11
第三行 c 的值为: 210
第四行 c 的值为: 2
第五行 c 的值为: 1
第六行 c 的值为: 22
第七行 c 的值为: 20
1.2、关系运算符
下表列出了所有Go语言的关系运算符。假定A值为10,B值为20。
运算符
描述
实例
==
检查两个值是否相等,如果相等返回True 否则返回False
(A == B)为False
!=
检查两个值是否不相等,如果不相等返回True 否则返回False
(A != B) 为True
>
检查左边值是否大于右边值,如果是返回True 否则返回False
(A > B)为 False
<
检查左边值是否小于右边值,如果是返回True 否则返回False
(A < B) 为True
>=
检查左边值是否大于等于右边值,如果是返回True否则返回False
(A >= B)为False
<=
检查左边值是否小于等于右边值,如果是返回True否则返回False
(A <= B)为True
以下实例演示了关系运算符的用法:
// 实例
package main
import"fmt"
func main(){
var a int =21
var b int =10if(a == b){
fmt.Printf("第一行 a 等于 b\n")}else{
fmt.Printf("第一行 a 不等于 b\n")}if(a < b){
fmt.Printf("第二行 a 小于 b\n")}else{
fmt.Printf("第三行 a 不小于 b\n ")}if(a > b){
fmt.Printf("第三行 a 大于 b\n")}else{
fmt.Printf("第三行 a 不大于 b\n")}
/* 改变a 和 b 的值 */
a =5
b =20if(a <= b){
fmt.Printf("第四行 a 小于等于 b\n")}if(a >= b){
fmt.Printf("第五行 a 大于等于 b\n")}}
以上实际运行结果:
第一行 a 不等于 b
第四行 a 不小于 b
第三行 a 大于 b
第四行 a 小于等于 b
第五行 b 大于等于 a
1.3、逻辑运算符
下表列出了所有Go语言的逻辑运算符。假定A值为True,B值为False。
运算符
描述
实例
&&
逻辑AND运算符。如果两边的操作数都是True,则条件True,否则为False
(A &&B)为False
||
逻辑OR运算符。如果两边的操作数有一个True,则条件True,否则为False
(A || B)为True
!
逻辑NOT运算符。如果条件为True,则逻辑NOT条件False,否则为True
!(A && B)为True
以上实例演示了逻辑运算符的用法:
package main
import"fmt"
func main(){
var a bool =true
var b bool =falseif(a && b){
fmt.Printf("第一行条件为 true\n")}if(a || b){
fmt.Printf("第二行条件为 true\n")}
/* 修改a 和 b 的值 */
a =false
b =trueif(a && b){
fmt.Printf("第三行条件为 true\n")}else{
fmt.Printf("第三行条件为 false\n")}if(!(a && b)){
fmt.Println("第四行条件为 true\n")}}
package main
import"fmt"
func main(){
var a uint =60 /* 60= 0011 1100 */
var b uint =13 /* 13= 0000 1101 */
var c uint =0
c = a & b /* 12= 0000 1100 */
fmt.Printf("第一行 c 的值为 %d\n", c)
c = a | b /* 61= 0011 1101 */
fmt.Printf("第二行 c 的值为 %d\n", c)
c = a ^ b /* 49=0011 0001 */
fmt.Printf("第三行 c 的值为 %d\n", c)
c = a <<2
fmt.Printf("第四行 c 的值为 %d\n", c)
c = a >>2
fmt.Printf("第五行 c 的值为 %d\n", c)}
以上实例运行结果:
第一行 c 的值为 12
第二行 c 的值为 61
第三行 c 的值为 49
第四行 c 的值为 240
第五行 c 的值为 15
1.5、赋值运算符
下表列出了所有Go语言的赋值运算符。
运算符
描述
实例
=
简单的赋值运算符,将一个表达式的值赋值给一个左值
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
<<=
左移后再赋值
C <<= 2 等于 C = C << 2
>>=
右移后再赋值
C >> 2 等于 C = C >> 2
&=
按位与后赋值
C &= 2 等于 C = C & 2
^=
按位异或后赋值
C ^= 2 等于 C = C ^ 2
|=
按位或后赋值
C |= 2 等于 C = C | 2
以下实例演示了赋值运算符的用法:
// 实例
package main
import"fmt"
func main(){
var a int =21
var c int
c = a
fmt.Printf("第1行 = 运算符实例, c 的值位 %d\n", c)
c += a
fmt.Printf("第2行 += 运算符实例, c 的值位 %d\n", c)
c -= a
fmt.Printf("第3行 -= 运算符实例, c 的值位 %d\n", c)
c *= a
fmt.Printf("第4行 *= 运算符实例, c 的值位 %d\n", c)
c /= a
fmt.Printf("第5行 /= 运算符实例, c 的值位 %d\n", c)
c =200
c <<=2
fmt.Printf("第6行 <<= 运算符实例, c 的值位 %d\n", c)
c >>=2
fmt.Printf("第7行 >>= 运算符实例, c 的值位 %d\n", c)
c &=2
fmt.Printf("第8行 &= 运算符实例, c 的值位 %d\n", c)
c ^=2
fmt.Printf("第9行 ^= 运算符实例, c 的值位 %d\n", c)
c |=2
fmt.Printf("第10行 |= 运算符实例, c 的值位 %d\n", c)}
// 实例
package main
import"fmt"
func main(){
var a int =4
var b int32
var c float32
var ptr *int
/* 运算符实例 */
fmt.Printf("第1行 a 变量类型为 %T\n", a)
fmt.Printf("第1行 b 变量类型为 %T\n", b)
fmt.Printf("第1行 c 变量类型为 %T\n", c)
/* & 和 * 运算符实例 */
ptr =&a
fmt.Printf("a 的值为 %d\n", a)
fmt.Printf("*ptr 的值为 %d\n", *ptr)}
以上实例运行结果:
第1行 a 变量类型为 int
第1行 b 变量类型为 int32
第1行 c 变量类型为 float32
a 的值为 4
*ptr 的值为 4
package main
import"fmt"
func main(){
var a int =20
var b int =10
var c int =15
var d int =5
var e int
e =(a + b) * c / d
fmt.Printf("(a + b) * c / d 的值为: %d\n", e)
e =((a + b) * c) / d
fmt.Printf("((a + b ) * c) / d 的值为: %d\n", e)
e =(a + b) * (c / d)
fmt.Printf("(a + b) * (c / d)的值为: %d\n", e)
e = a + (b*c)/d
fmt.Printf("a + (b * c) / 的值为: %d\n", e)}
以上实例运行结果:
(a + b) * c / d 的值为: 90((a + b ) * c) / d 的值为: 90(a + b) * (c / d)的值为: 90
a + (b * c) / 的值为: 50