funcmain() { var a int = 20 var b int = 10 fmt.Println("a + b =", a+b) fmt.Println("a - b =", a-b) fmt.Println("a * b =", a*b) fmt.Println("a / b =", a/b) fmt.Println("a % b =", a%b) a++ b-- fmt.Printf("a = %d, b = %d", a, b) }
func main() { vara int = 20 varb int = 10 ifa == b { fmt.Println("a=b") } else { fmt.Println("a!=b") } ifa < b { fmt.Println("a<b") } else { fmt.Println("a>b") } ifa > b { fmt.Println("a>b") } else { fmt.Println("a<b") } ifa <= b { fmt.Println("a<=b") } ifa >= b { fmt.Println("a>=b") } }
逻辑运算符
运算符
描述
&&
逻辑and运算符,如果两边的操作数都是true,则条件为true,否则为false
||
逻辑or运算符,如果两边的操作数有一个true,则条件为true,否则是false
!
逻辑not运算符,如果条件为true,则逻辑not条件false,否则是true
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
package main
import"fmt"
funcmain() { var a bool = true var b bool = false if a && b { fmt.Println("a=b") } if a || b { fmt.Println("a!=b") } if a && !b { fmt.Println("true") } }
func main() { var a int =21 var c int c= a fmt.Println(c) c += a fmt.Println(c) c -= a fmt.Println(c) c *= a fmt.Println(c) c /= a fmt.Println(c) c=20 c <<=2 fmt.Println(c) c >>=1 fmt.Println(c) c &=5 fmt.Println(c) c ^=10 fmt.Println(c) c |=2 fmt.Println(c) }
其他运算符
运算符
描述
&
返回变量的存储地址
*
指针变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14
package main
import"fmt"
func main() { var a int = 4 varptr *int ptr = &a fmt.Printf("a 的值为 %d\n", a) fmt.Printf("*ptr 为 %d\n", *ptr) fmt.Printf("%p\n", &a) fmt.Printf("%p\n", ptr) }
运算符优先级
优先级,就是当多个运算符出现在同一个表达式之中时,先执行哪个运算符。运算符优先级如下表:
优先级
分类
运算符
结合性
1
逗号运算符
,
从左到右
2
赋值运算符
=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=
从友到左
3
逻辑或
||
从左到右
4
逻辑与
&&
从左到右
5
按位或
|
从左到右
6
按位异或
^
从左到右
7
按位与
&
从左到右
8
相等/不等
==、!=
从左到右
9
关系运算符
<、<=、>、>=
从左到右
10
位移运算符
<<、>>
从左到右
11
加法/减法
+、-
从左到右
12
乘法/除法/除余
*、/、%
从左到右
13
单目运算符
!、*(指针)、&、++、–、+(正号)、-(负号)
从右到左
14
后缀运算符
()、[]、->
从左到右
优先级值越大,表示优先级越高
Go语言条件语句
if…else语句的语法如下:
1 2 3 4 5
if 布尔表达式{ /*在布尔表达式为true时执行*/ }else{ /*在布尔表达式为false时执行*/ }
func main() { vara int varb int = 10 fmt.Println("输入a") fmt.Scanf("%d", &a) ifa < b { fmt.Println("a<10") } ifa > b { fmt.Println("a>10") } ifa == b { fmt.Println("a==10") } }