随笔 - 241  文章 - 1  评论 - 58  阅读 - 85万 

前言

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

 Go 语言内置的运算符有: 

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

 

算数运算符

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

<br>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   Martin8866  阅读(1162)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示