/*赋值运算符的特点 (1)运算顺序从右到左 var c int c = a + 3//赋值运算的执行顺序是从右向左 (2)赋值运算的左边 只能是变量右边,可以使变量、表达式、常量值 //(2)赋值运算符的左边只能是变量,右边可以使变量、表达式、常量值 //表达式;任何有值都可以看做表达式 var d int d = a // d = 8 + 2 * 8//=的右边是表达式 d = test() + 90//=的右边是表达式 d = 890//常量 fmt.Println(d) (3)复合赋值运算符等价于下面的效果 比如: a+=3 等价于 a=a+3 / / //面试题 //有两个变量,a和b,要求将其进行交换,但是不允许使用中间变量,最终打印结果; //var a int = 10 //var b int = 20 a = a + b//左边a是变量未知的,右边可以理解为10+20 b= a -b //左边为变量,b是未知的,根据a = a+b 那么b=b+a(现在是b=a-b)那么就是b=b+a-b最后是b=a a=a - b// 左边为变量,a是未知的,根据a = a +b 那么a=a+b-a,就是a=b fmt.Printf(“a=%v b=%v”,a,b)
优先级排序为:算术运算符 > 关系运算符 > 赋值运算。 算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。 关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。
/*赋值运算符的特点
(1)运算顺序从右到左
var c int
c = a + 3//赋值运算的执行顺序是从右向左
(2)赋值运算的左边 只能是变量右边,可以使变量、表达式、常量值
//(2)赋值运算符的左边只能是变量,右边可以使变量、表达式、常量值
//表达式;任何有值都可以看做表达式
var d int
d = a //
d = 8 + 2 * 8//=的右边是表达式
d = test() + 90//=的右边是表达式
d = 890//常量
fmt.Println(d)
(3)复合赋值运算符等价于下面的效果
比如: a+=3 等价于 a=a+3
/
/
//面试题
//有两个变量,a和b,要求将其进行交换,但是不允许使用中间变量,最终打印结果;
//var a int = 10
//var b int = 20
a = a + b//左边a是变量未知的,右边可以理解为10+20
b= a -b //左边为变量,b是未知的,根据a = a+b 那么b=b+a(现在是b=a-b)那么就是b=b+a-b最后是b=a
a=a - b// 左边为变量,a是未知的,根据a = a +b 那么a=a+b-a,就是a=b
fmt.Printf(“a=%v b=%v”,a,b)
(1)案例1;求两个数的最大值
(2)案例2;求三个数的最大值
运算符优先级
(1)运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。
如右表,上一行运算符总优先于下一行。
(2)只有单目运算符、赋值运算符是从右向左运算的。
(3)大致的顺序整理
分类 概述 关联性
后缀 ()【】->.++ – 左到右
单目 ±!^*&(类型,强制类型转换)sizeof(长度运算符) 右到左
乘法 * / % 左到右
加法 ± 左到右
移位 << >> 左到右
关系 < <= > >= 左到右
相等(关系) == != 左到右
按位AND & 左到右
按位XOR ^ 左到右
按位OR | 左到右
逻辑与 && 左到右
逻辑或 || 左到右
赋值运算符 = += /= *= -= %= <<= >>= &= ^= |= 右到左
逗号 . 左到右
算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。
关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。其中,关系运算符【< > <= >= 】属于优先级第六级,等于运算符【==】、不等于运算符【!=】属于优先级第七级。
赋值运算符【= += -= *= /= %= >>= <<.= &= |= ^=】属于优先级第第十四级。
所以,优先级排序为:算术运算符高于关系运算符高于赋值运算。
相关问题推荐
比较运算符 名称说明示例结果==等于比较两个数值(数字、布尔)是否相同9==9true8==7false!=不等于比较两个数值(数字、布尔)是不同6!=6false5!=8true大于检查左边的数是否大于右边的数9>6true6>9false=6true...
()1!(很高)、++、--2先*、/、%后+、-3>、>=、
= 不能用于 NULL的比较 和 = 类型,,不同在于 值魏NULL 也可以正确的比较;BETWEEN 的用法,a BETWEEN min ADD max ; 相当于是 a在 min和 max之间;可以等于min和max;in 的用法 a in(1,2,3,4,5) ,a 是否存在 1 2 3 4 5 中;a IS NULL ;...
=:把右边的内容赋值给左边+=,-=,*=,/=,%=:把左边的和右边的操作后赋值给左边。注意: +=隐含了强制类型转换。 x+=y;等价与:x = (x的数据类型)(x + y);
不是算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。其中,关系运算符【< > = 】属于优先级第...
算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。其中,关系运算符【< > = 】属于优先级第六级...
基本的赋值运算符是=。他的优先级别低于其他的运算符,所以对该运算符往往最后读取。
当然是右结合。譬如这个表达式: a == b ? a : b ? c : d它的结合是这样的 a == b ? a : (b ? c : d)如果是左结合,它的结合是这样的: a == (b ? a : b) ? c : d
1、= 赋值运算 符:变量=表达式,如:a=3,将a的值赋为3;2、/= 除后赋值:变量/=表达式,如:a/=3,即a=a/3;3、*= 乘后赋值:变量*=表达式,如:a*=3,即a=a*3;4、%= 取模后赋值:变量%=表达式,如:a%=3,即a=a%3;5、+= 加后赋值:变量+=表达式,如:a+=...
一、> :右移运算符,num >> 1,相当于num除以2三、>>> :无符号右移,忽略符号位,高位都以0补齐,无符号右移运算符>>> 只是对32位和64位的值有意义四、& :与运算,符号两边都为true,结果才是true,否则为false;对于数字,可将数字转换为2进制形式去理解,...
所有的数学运算都认为是从左向右运算的,Java 语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。乘法和加法是两个可结合的运算,也就是...
一.算术运算符算数运算符是完全符合数学运算的规律,其中包括:+ (加法运算)、- (减法运算)、*(乘法运算)、/ (除法运算)、%(取余)、++(自加运算)、–(自减运算)、++i; i先+1再参与运算、--i; i先-1再参与运算、i++; 先运算再+1、i--; 先运算再-1二、关系比...
typeof 运算符返回一个用来表示表达式的数据类型的字符串。typeof expression ;expression 参数是需要查找类型信息的任意表达式。说明typeof 是一个一元运算符,放在一个运算数之前。typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: ...
以下运算符优知先级顺序依次递增: Lambda #运算优先级最低逻辑道运算符: or逻辑运算符: and逻辑运算符:not成员测试: in, not in同一性专测试: is, is not比较: =,!=,==按位或: |按位异或: ^按位与: &移位: 加法与减法: + ,-乘法、除法与...
如下: