算数运算符,比较运算符,逻辑运算符,赋值运算符,运算优先级

article/2025/9/17 12:11:41

文章目录

  • 1.算数运算符
  • 1.1注意事项
  • 2.关系运算符,比较运算符
    • 2.1注意事项
  • 3.逻辑运算符
    • 3.1注意事项
  • 4.赋值运算法
    • 4.1注意特点
  • 5.运算优先级

1.算数运算符

在这里插入图片描述

package mainimport "fmt"func main() {//说明,如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分fmt.Println(10 / 4)var n1 float32 = 10 / 4 //fmt.Println(n1)//如果我们希望保留小数部分,则需要有浮点数参与运算var n2 float32 = 10.0 / 4fmt.Println(n2)//演示%的使用//看一个公式a%b=a-a/b*bfmt.Println(10 % 3)  //=1fmt.Println(-10 % 3) //=-10-(10)/3*3=-10-(-9)=-1fmt.Println(10 % -3)fmt.Println(-10 % -3)//++和--的使用var i int = 10i++                  //等价i=i+1fmt.Println("i=", i) //11i--                  //等价i = i-ifmt.Println("i=,i")  //10
}
//在golang,中++和--只能独立使用// 	var i int = 8// 	var a int// 	a=i++//错误,i++只能独立使用// 	a=i--//错误,i--只能独立使用// 	if i++>0{// 		fmt.Println("ok")// 	}// 	var i int =1// 	i++// 	++i//错误,在golang没有,前++ 前--也是错误的// 	fmt.println("i",i)//

1.1注意事项

  1. 对于除号“/”,它的整数和小数除是有区别的,整数之前做除法时,只保留整数部分而舍弃小数部分
  2. 对于一个数取模式,可以等价a%b=a-a/b*b,这样我们可以看到取模的一个本质运算
  3. Golang的自增自减只能当做一个独立语言使用时,不能这样使用,b:=a++或者b:=a–
  4. Glang的++或-只能写在变量的后面,不能写在变量的前面,即:只有a++a–没有++a,–a
  5. Golang的设计者去标c、java中的自增自减的容易混淆的写法,让Golang更加的简洁,统一。(强制性)
  6. 图片上的是一些案例
package mainimport "fmt"func main() {//假如还有97天放假,问:xx个星期零xx天var days int = 97var week int = days / 7var day int = days % 7fmt.Printf("%v个星期零%d天\n", week, day)//定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为://5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度var huashi float32 = 134.2var sheshi float32 = 5.0 / 9 * (huashi - 100) //正确的华氏是-32,但是不影响理解fmt.Printf("%v对应的摄氏温度=%v \n", huashi, sheshi)
}

2.关系运算符,比较运算符

  • 关系运算的结果是bool型,也就是要么是ture,要么是false
  • 关系表达式经常用在if结构的条件或者循环结构的条件中
    在这里插入图片描述
    案例演示
package mainimport "fmt"func main() {//演示关系运算符的使用var n1 int = 9var n2 int = 8fmt.Println(n1 == n2) //falsefmt.Println(n1 != n2)fmt.Println(n1 > n2)fmt.Println(n1 >= n2)fmt.Println(n1 < n2)fmt.Println(n1 <= n2)flag := n1 > n2fmt.Println("flag", flag)
}

2.1注意事项

1.关系运算符的结果都是bool型,也就是要么是true,要么是false
2.关系运算符组成的表达式,我们称之为关系表达式:a>b
3.比较运算符“==”不能误写成“=”

3.逻辑运算符

用于连接多个条件,(一般来讲就是关系表达式),最终的结果也是一个bool值
在这里插入图片描述

3.1注意事项

&&也叫短路与,如果一个条件为false,则第二个条件不会判断,最终结果为false
||也叫短路线或,如果第一个条件为true,则第二个条件不会判断,最终结果为true
案例

package mainimport "fmt"//声明一个函数(测试)
func test() bool {fmt.Println("test..")return true
}func main() {var i int = 10// //短路与// //说明因为 i<9 false,因此后期的test()就不执行// if i > 9 && test() {// 	fmt.Println("ok")//如果i<9则都不输出// }if i < 9 || test() {fmt.Println("hello...")}//如果i<9则会输出test和hello,如果i>9则只输出hello
}

4.赋值运算法

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

package mainimport ("fmt"
)func test() int {return 90
}
func main() {//赋值运算符的使用//var i int//i=10//基本赋值//赋值运算符的使用演示//有两个变量,a,b,要求将其进行转换,最终打印结果//a=9,b=2,==>a=2 b=9a := 9b := 2fmt.Printf("交换前的情况是a=%v,b=%v\n", a, b)//定义一个临时变量t := aa = bb = tfmt.Printf("a%v,b%v\n", a, b)//复合赋值的操作a += 17 //等价a=a+17fmt.Println("a=", a)//赋值运算符的左边只能是变量,右边可以说变量,表达式,常量值//表达式:任何有值都可以看做表达式var d intd = a           //d = 8 + 2*8     //右边是表达式d = test() + 90 //=的右边是表达式//d = 890         //890常量fmt.Println(d)
}

4.1注意特点

  • 赋值运算的注销顺序是从右向左
  • 赋值的左边只能是变量,但是右边可以是变量,表达式(任何右值都可以看做表达式),常量(比如880)。
    package main
import "fmt"func main() {//有两个变量,a和b,要求将其进行交换,但是不允许使用中间变量,最终打印结果var a int = 10var b int = 20a = a + b //b = a - b //b=a+b==>b=ab = a - b //b=a+b-b==>b=aa = a - b //a=a+b-a==>a=bfmt.Printf("a=%vb=%v", a, b)
}

5.运算优先级

在这里插入图片描述

  • 只有单目运算符,赋值运算符是从右向左运算的

http://chatgpt.dhexx.cn/article/eXCvt5Zu.shtml

相关文章

【C语言】运算符的优先级

目录 算术运算符&#xff1a; 关系运算符&#xff1a; 逻辑运算符 三种运算符优先级高低比较&#xff1a; 算术运算符&#xff1a; 5种算术运算符&#xff1a;, -, *, /, % 优先级&#xff1a;*&#xff0c;/&#xff0c;%大于&#xff0c;- 关系运算符&#xff1a; 6种…

逻辑运算符与++的使用与优先级差别

我们的教材通常会按级次区别优先级&#xff0c;如下图所示&#xff1a; 那对于一个简单的编程题&#xff1a; int a,b,c,y;abc1;y a||b&&c 此时输出结果为&#xff1a;y1,a2,b1,c1 按照逻辑运算符&&优先于||&#xff0c;结果不应该为2&#xff0c;2&#xff…

逻辑运算符、位运算符、移位运算符、三目运算符、运算符的优先级

一、逻辑运算符 &#xff1a;逻辑运算符的作用是用于连接布尔表达式的。 1、& &#xff08;与&#xff0c;并且&#xff09; 规律&#xff1a; 只有左右变量同时为true&#xff0c;那么结果才是true&#xff0c;否则就false。 2、| &#xff08;或&#xff0c;或者&…

C/C++逻辑运算符 | | 和 的优先级误区——优先级决定运算顺序吗?

C运算符优先级表&#xff1a; 根据这个表格&#xff0c;我们很容易得出结论&#xff1a;&&的优先级大于|| 下面看一段代码&#xff0c;来验证这个结论 #include<iostream> using namespace std; int main() {int x 3;int y 1 || (x 1) && (x 1);pr…

运算符的优先级顺序

运算符优先级口诀&#xff1a;单目算术位关系&#xff0c;逻辑三目后赋值。 单目&#xff1a; 、- - 算术&#xff1a;、-、*、/、% 位&#xff1a;位移运算符&#xff1a;<<&#xff08;左移位&#xff09;、>>&#xff08;带符号右移位&#xff09;、>>>…

c++运算符优先级归纳

C一共有 18个优先级&#xff0c;运算中按优先级进行性计算&#xff0c;当优先级相同时&#xff0c;根据结合性规则来决定。 结合性&#xff1a; 1.从左到右&#xff08;L-R&#xff09;&#xff1a;操作数和操作符结合的顺序大部分是从左到右结合性的&#xff0c;例如&#xff…

C++运算符的优先级

有括号的优先级最高&#xff0c;涉及对象的运算符&#xff1b; 自增自减&#xff0c;取值&#xff0c;取地址运算符&#xff0c;逻辑非&#xff0c;按位取反&#xff0c;强制类型转换&#xff0c;长度运算符 先乘除后加减 左移右移运算符 比较运算符、三目运算符 各类赋值运算…

运算符优先级

C语言中&#xff0c;运算符除了常见的三大类&#xff0c;算术运算符、关系运算符与逻辑运算符之外&#xff0c;还有一些用于完成特殊任务的运算符。 运算符的运算优先级共分为15 级&#xff0c;1 级最高&#xff0c;15 级最低。 在表达式中&#xff0c;优先级较高的先于优先级…

【博客624】MAC地址表、ARP表、路由表(RIB表)、转发表(FIB表)

MAC地址表、ARP表、路由表(RIB表/FIB表) MAC地址表 MAC地址表是交换机等网络设备记录MAC地址和端口的映射关系&#xff0c;代表了交换机从哪个端口学习到了某个MAC地址&#xff0c;交换机把这个信息记录下来&#xff0c;后续交换机需要转发数据的时候就可以根据报文的目的MAC地…

【新星计划-2023】什么是ARP?详解它的“解析过程”与“ARP表”。

一、什么是ARP ARP&#xff08;地址解析协议&#xff09;英文全称“Address Resolution Protocol”&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机&#xff0c;并接收返回消息&#xff0c;以此确…

ARP表 MAC表 路由表

ARP表是一个动态表&#xff0c;存储在计算机当中&#xff0c;目的是做一个ip地址与mac地址的对应。 假设在同一子网段&#xff0c;计算机A与计算机B通信 计算机A的ip地址192.168.0.1 MAC地址AA-AA-AA-AA-AA-AA 计算机B的ip地址已知192.168.0.2 MAC地址未知 那么计算机A就要…

Linux上ARP表,路由表的解释

为厘清数据在网络中的传输流向和具体的实现过程&#xff0c;现对ARP表&#xff0c;路由表进行学习如下。 ARP&#xff08;Address Resolution Protocol&#xff09;地址解析协议。IP数据包经常通过以太网进行发送&#xff0c;以32位的IP地址作为源/目的地址。但是以太网设备不能…

Windows7 arp表删除方法

Windows7 arp表删除方法 1 使用arp命令删除2 使用其他命令删除 Winsows7系统删除arp表有很多方法&#xff0c;这里介绍两种简单的方法&#xff0c;都是直接使用命令提示符应用&#xff08;cmd&#xff09;进行删除。 1 使用arp命令删除 1.打开cmd&#xff1a;直接在搜索中搜索…

FDB表-ARP表-路由表

简介 二层转发通过查询FDB表实现&#xff0c;不对报文做任何修改。三层转发通过查询路由表和arp表实现&#xff0c;路由表确定出接口&#xff0c;然后以出接口的MAC作为报文的源MAC&#xff1b;以报文的目的IP查询arp表获取下一跳MAC&#xff0c;以该MAC作为报文的目的MAC; 因…

转发表(MAC表)、ARP表、路由表总结

全文概要 计算机网络中一个关键步骤在于通信路径上不同节点对于流经本节点的数据包转发&#xff0c;常见的交换设备主要是交换机(第二层、三层)和路由器(第三层)&#xff0c;在实际运行时&#xff0c;它们各自维护一些表结构帮助完成数据包的正确寻址与转发&#xff0c;本文详…

Mac地址表、ARP表、路由表

一、Mac地址表。 Mac地址表记录了Mac地址和对应接口的关系&#xff0c;如图1-1所示。 图1-1 Mac地址表代表了交换机从某个接口学习到了它的Mac地址并记录下来&#xff0c;后续交换机如果要转发数据则可通过报文的Mac地址对应Mac地址表来转发数据。 二、ARP表。 ARP表记录着路…

ARP表、MAC表、路由表是什么

最近学习网络知识&#xff0c;租了一个3A服务器用来做实验&#xff0c;很方便&#xff0c;有兴趣后台私信我 1、ARP表 提起ARP表必然先想起ARP&#xff08;address resolution protocol&#xff09;协议&#xff0c;地址解析协议。 在实际应用中&#xff0c;我们经常遇到这样的…

MAC地址表、ARP表和路由表详解

一&#xff1a;MAC地址表详解 说到MAC地址表&#xff0c;就不得不说一下交换机的工作原理了&#xff0c;因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表&#xff0c;交换机就是根据这张表负责将数据帧传输到指定的…

网络三张表:ARP表, MAC表, 路由表,实现你的网络自由!!

背景说明&#xff1a; 网络的知识&#xff0c;是大家开发过程中&#xff0c;非常重要也是非常底层的知识。所以网络知识是一个非常、非常核心的面试知识点。 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;其相关面试题是一个非常、非常高频的交流话题。社群中&#xff…

路由表(RIB表、FIB表)、ARP表、MAC表整理

在一些常见的网络设备中(如交换机、路由器)&#xff0c;为了实现网络转发功能&#xff0c;各自通过维护一些表项来完成路由寻址及快速转发功能&#xff0c;其中比较重要的表项有&#xff1a; 路由表转发表Mac表ARP表 本文对这网络中的最关键的四个表项做一个详细介绍。 目录…