前言

运算符用于在程序运行时 执行数学或逻辑运算

 Go 语言内置的运算符有: 

  1. 算术运算符
  2. 关系运算符
  3. 逻辑运算符
  4. 位运算符
  5. 赋值运算符

 

算数运算符

i++和i++就等于i=i-1和i=i+1


package main import ( "fmt" ) func main() { var ( a = 5 b = 2 ) fmt.Println(a + b) //+相加 fmt.Println(a - b) //-相减 fmt.Println(a * b) //*相乘 fmt.Println(a / b) // /相互除 fmt.Println(a % b) //取于 a++ //相当于 a=a+1 fmt.Println(a) b-- //相当于 b=b-1 fmt.Println(b) }

  

 

关系运算符

Go语言是强类型语言,只有相同数据类型的变量才能比较是否相等。

 

package main

import (
	"fmt"
)

func main() {
	var (
		a = 5
		b = 3
	)
	fmt.Println(a == b) //== Go语言是强类型语言,只有相同数据类型的变量,才能比较是否相等
	fmt.Println(a != b) //!= 判断是否不相等
	fmt.Println(a > b)  //大于
	fmt.Println(a >= b) //大于等于
	fmt.Println(a < b)  //小于
	fmt.Println(a <= b) //小于等于
}

 

逻辑运算符

Go里面没有 and 、or、not关键字 使用 && 、|| 、!。

 


package main import ( "fmt" ) func main() { var ( a = true b = false ) fmt.Println(a && b) //false fmt.Println(a || b) //true fmt.Println(!b) //true }

位运算符

位运算符  是针对整数在内存中的二进制位进行操作。后面主要用于 Linux文件权限和IP相关 

 

 

package main

import (
	"fmt"
)

func main() {
	var (
		n1 = 5 //101
		n2 = 2 //010
	)
	//& 按位与(上下两位均为1才为1)
	fmt.Println(5 & 2) //000
	//| 按位或(上下两位有1个1就为1)
	fmt.Println(n1 | n2) //111
	//^ 按位异或(上下两位不一样则为1)
	fmt.Println(5 ^ 2) //111
	//<<:将二进制位左移 N位
	fmt.Println(5<<1) //101--》1010====>10
	fmt.Println(1<<10)//1---》10000000000==>1024
	//<<:将二进制位右移 N位
	fmt.Println(5>>2)//101==》10==》2
	fmt.Println(5>>2)//101==》1==》1
	fmt.Println(5>>2)//101==》0==》0



}

  

赋值运算符

赋值运算就是运算之后再重新赋值

 

 

package main

import (
	"fmt"
)

func main() {
	var n1 int
	n1 = 10
	n1++     //n1=n1+1
	n1--     //n1=n1-1
	n1 *= 3  //n1=n*3
	n1 /= 2  //n1=n1/2
	n1 %= 2  //n1=n1%2
	n1 >>= 2 //n1=n1>>2
	n1 <<= 2 //n1=n1<<2
	n1 &= 2
	n1 |= 3
	n1 ^= 4
	fmt.Println(n1)

}

 

运算符优先级

is(==)、not(!=)、and(&&)、 or(||) ,忘记了优先级就加括号。

 

 

var attemptLimit int8 = 3
var (
    userName = "zhanggen"
    passWord = "dj3uiruri"
)
func main() {
    var inputUser string
    var inputPassword string
    for attemptLimit != 0 {
        fmt.Print("请输入用户名: ")
        fmt.Scan(&inputUser)
        fmt.Print("请输入密码: ")
        fmt.Scan(&inputPassword)
        if inputUser == userName  && inputPassword == passWord  {
            fmt.Println("登录成功!")
            break
        }
        attemptLimit--
        switch attemptLimit {
        case 0:
            fmt.Printf("程序退出!")
        default:
            fmt.Printf("您还有%d机会\n", attemptLimit)
        }

    }

}
登录系统

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

see also

posted on 2020-03-22 11:12  Martin8866  阅读(1151)  评论(0编辑  收藏  举报