精华内容
下载资源
问答
  • Java运算符基础,一元运算符,二元运算符,移位关系运算符,逻辑运算符,运算符优先级,运算符结合性

    运算符基础

    Java 是强类型语言,运算符优先级有着严格的规定,程序会严格按照优先级运行

    Java运算符图表

    运算符分类结合顺序运算符
    分隔符左结合. [] ( ) ; ,
    一元运算符右结合! ++ – - ~
    算术运算符左结合* / % + -
    移位运算符左结合<< >> >>>
    关系运算符左结合< > <= >= instanceof = = !=
    位运算符左结合& ^ |
    逻辑运算符左结合&& ||
    三目运算符右结合布尔表达式?表达式1:表达式2
    赋值运算符右结合= *= /= %= += -= <<= >>= >>>= &= *= |=

    上述表的优先级是从高到低,即分隔符优先级最高,赋值运算符优先级最低。优先级大家可以理解为小学数学中先括号,后乘除,再加减等等

    同一优先级运算符,运算次序怎么办?

    运算符结合性

    结合性:指一个操作数左右两边各有一个操作符时,先按照操作的优先级决定运算次序,如果优先级相同,再按照操作符的结合性来决定运算次序

    Java中各种运算符的结合性分为两种:

    • 左结合性

      自左向右,即先左后右

      例如:

      表达式:
      int result = x – y + z; 
      //则y应先与 “-”号结合,执行x-y运算,然后再执行 +z的运算。
      

      这种自左向右的结合方向就称为“左结合性”

    • 右结合性

      自右向左,即先右后左

      例如:

      int result = x = y = z = 10; 
      由于“=”的右结合性,应先执行z = 10; 再执行 y = z 再执行 x = y 运算
      

      这种自右向左的结合方向就称为“右结合性”

    java语言中大部分运算符也是从左到右结合的,只有一元运算符、赋值运算符和三元运算符例外

    展开全文
  • lua中的运算符结合性及优先级

    千次阅读 2019-03-13 14:34:42
    1. lua中的运算符结合性及优先级 1.1. 左结合及右结合性 左结合就是如果连续两个同一优先级的运算符号挨着,那么相当于右边的一个加括号。 则以下代码可以写成 a+b+c &amp;lt;---&amp;gt; (a+b)+c a+b+c+d &...

    1. lua中的运算符结合性及优先级

    1.1. 左结合及右结合性

    左结合就是如果连续两个同一优先级的运算符号挨着,那么相对于右边的一个加括号。

    则以下代码可以写成

    a+b+c    <--->    (a+b)+c
    a+b+c+d    <--->    ((a+b)+c)+d
    a+b+c+d+e+...    <--->    (..((((a+b)+c)+d)+e)+..)
    

    lua中的右结合运算符只有 “^” 以及 ".. "

    1.2. 优先级

    在统一优先级的情况下,使用左右结合太特性进行结合。
    但如果是不同优先级,则按照优先级顺序依次处理,如下例子

    a+b*c    <--->    a+(b*c)
    a or b and c    <--->    a or (b and c)
    a or b > c    <--->    a or (b > c)
    

    lua运算符优先级表

    运算符
    ^
    not、#、-(一元)
    *、 /、 %
    +、 -
    ..
    < 、>、 <=、 >= 、~=、 ==
    and
    or
    展开全文
  • PS:“+”和“-”既是一元运算符,也是二元运算符。首先我们看看下面这几道题的结果是什么:当 x='1'时, x+1;x-1;+x;-x;++x; typeof(x+1); typeof(x-1); typeof(+x); typeof(-x); typeof(++x); 的结果分别...
    PS:“+”和“-”既是一元运算符,也是二元运算符。

    首先我们看看下面这几道题的结果是什么:


    当 x='1'时, x+1;x-1;+x;-x;++x; typeof(x+1); typeof(x-1); typeof(+x); typeof(-x); typeof(++x); 的结果分别是多少? 答案: x+1 //'11' x-1 //0 +x //1 -x //-1 ++x //2 typeof(x+1) //'string' typeof(x-1) //'number' typeof(+x) //'number' typeof(-x) //'number' typeof(++x) //'number'

    一元加法(+)

    一元加法运算符把操作数转换为数字(或者NaN),并返回这个转换后的数字。如果操作数本身就是数字,则直接返回这个数字。

    +1    // => 1: 操作数本身就是数字,则直接返回这个数字
    +'1'  // => 1: 把字符串转换为数字
    +'-1' // => -1: 把字符串转换为数字

    一元减法(-)

    当“-”用做一元运算符时,它会根据需要把操作数转换为数字,然后改变运算结果的符号。

    -1   // => -1: 操作数本身就是数字,直接改变运算结果的符号
    -'1' // => -1: 把字符串转换为数字,再改变运算结果的符号
    -'-1'// => 1: 把字符串转换为数字,再改变运算结果的符号

    二元加法(+)

    二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作。

    当两个操作数都是数字或都是字符串的时候,计算结果是显而易见的。然而对于其他情况来说,则要进行一些必要的类型转换,并且运算符的行为依赖于类型转换的结果。加号的转换规则优先考虑字符串连接,如果其中一个操作数是字符串或者转换为字符串的对象,另外一个操作数将会转换为字符串,加法将进行字符串的连接操作。如果两个操作数都不是类字符串(string-like)的, 两个操作数都将转换为数字(或者NaN),然后进行算术加法运算。

    这里有一些栗子:

    1 + 1        // => 2: 加法
    '1' + '1'    // => '11': 字符串连接
    '1' + 1      // => '11': 数字转换为字符串后进行字符串连接
    1 + {}       // => '1[object Object]': 对象转换为字符串后进行字符串连接
    true + true  // => 2: 布尔值转换为数字后做加法
    1 + null     // => 1: null转换为0后做加法
    1 + undefined// => NaN: undefined转换为NaN后做加法

    需要特别注意的是,当加号运算符和字符串和数字一起使用时,需要考虑加法的结合性的对运算顺序的影响。也就是说,运算结果是依赖于运算符的运算顺序的,比如:

    1 + 1 + '1';  // => '21'
    1 +(1 + '1'); // => '111'

    第一行没有圆括号,“+”运算符具有从左至右的结合性,因此两个数字首先进行加法计算,计算结果和字符串进行连接。在第二行中,圆括号改变了运算顺序:数字1和字符串连接,生成一个新字符串,然后数字1和这个新字符串再次连接,生成了最终结果。

    二元减法(-)

    当“-”用做二元运算符时,它会根据需要把操作数转换为数字,然后再进行减法运算。

    1-0    // => 1: 减法
    '1'-0  // => 1: 字符串转为数字后进行减法运算
    '1'-'0'// => 1: 字符串转为数字后进行减法运算

    递增(++)

    需要注意的是,“++”运算符从不进行字符串连接操作,它总是会将操作数转换为数字并增1。表达式++x并不总和x=x+1完全一样。

    var x='1';
    var y=x+1; // =>'11': 字符串连接
    var z=++x; //=> 2:字符串转为数字后增1

    总结:

    JavaScript中的某些运算符会做隐式的类型转换。一元运算符“+”,“-”,“++”,二元运算符“-”都会把操作数隐式的转换为数字,二元运算符“+”比较特殊,当有操作数是字符串,它将会把另外一个操作数转换为字符串。

    x + '' // 等价于String(x)
    +x     // 等价于Number(x)

     

    下面是我的公众号,欢迎大家关注,大家一起学习一起进步

     

     

    参考文章链接:https://www.javazhiyin.com/11742.html

    转载于:https://www.cnblogs.com/lxl0419/p/10953929.html

    展开全文
  • 一、一元运算符 1.正号 (1)正号不会对数字产生任何影响 (2)对于非Number类型的值,会先将其转换为Number,然后再进行运算 注意:如果加号放在后面,就会报错。 2.负号 (1)负号就是对数字进行取反; ...

    一、一元运算符

    1.正号

    (1)正号不会对数字产生任何影响

    (2)对于非Number类型的值,会先将其转换为Number,然后再进行运算

    注意:如果加号放在后面,就会报错。

    2.负号

    (1)负号就是对数字进行取反;

    复制代码

        var bool = true;
    
        console.log(+bool);
    
     
    
        var str = "1224";
    
        console.log(+str);
    
    ​
    
        console.log(+"josdjf45");
    
    ​
    
        console.log(-45);

    复制代码

    二、赋值运算符

    1.简单赋值运算符

    (1)赋值号的左边必须是一个变量;(2)多个赋值运算符可以组成赋值表达式,赋值表达式具备右结合性。

    2.复合赋值运算符

    +=   -=   *=   /=    %/

    三、自增自减运算符

    ++  --  和Java的用法一样

    复制代码

     
    
        var a = 1;
    
        var b = 2;
    
        console.log((a++)+(b++));
    
        var c = 1;
    
        var d = 2;
    
    console.log((++c)+(++d));

    复制代码

     

     

    三、逻辑运算符

    与&&

    或||

    ​非!

    用法与Java一致​

    展开全文
  • 一、一元运算符 1.正号 (1)正号不会对数字产生任何影响 (2)对于非Number类型的值,会先将其转换为Number,然后再进行运算 注意:如果加号放在后面,就会报错。 2.负号 (1)负号就是对数字进行取反; var bool =...
  • 我们一直在使用重载的运算符,这些运算符重载在c++语言本身中。例如,c++重载了加运算符(+)和减运算符(-)。这些运算符在整型运算、浮点型运算、指针运算等上下文中,执行的操作是不同的。 大多数c++运算符都可被...
  • 《JAVA运算符优先级和结合性》 1. java运算符优先级和结合性  优先级:  为解决先执行哪个运算的问题而产生的概念。...一元运算符,三元运算符和赋值运算符的结合性是右结合性,其他都是左结合性
  • 一元运算符只对一个表达式执行操作,该表达式可以是数值数据类型类别中的任何一种数据类型。自我理解--就是作用与一个表达式的运算符。 自增、自减怎么使用? /** * 一元运算符测试 */ public class OperatTest...
  • 那么这个一元的从右到左是什么意思呢?看下面代码。 package tt; public class Hw { public static void main(String[] args) { int a=2; System.out.println(-a--); System.out.println(a); } }; ...
  • 1、javascript具有下列种类的运算符:算术运算符;逻辑运算符;比较运算符;2、目的分类:字符串运算符;...算术运算符:+ 、 - 、* 、 / 、 % 、 -(一元取反) 、 ++ 、 --等同运算符与全同运算符:==(等于) ...
  • C语言运算符结合性

    千次阅读 2013-08-13 20:23:33
    C 语言与其他高级语言相比, 一个显著的特点就是其运算符特别... 大多数运算符结合方向是“自左至右”, 即: 先左后右, 例如a- b+c, b 两侧有- 和+两种运算符的优先级相同, 按先左后右结合方向, b 先与减号
  • 本文转载自:https://www.cnblogs.com/litifeng/p/6647021.html java运算符优先级和结合性 运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % ...
  • 描述运算符是一种告诉编译器执行特定的数学...根据运算符可操作的操作数的个数,可把运算符分为一元运算符、二元运算符和多元运算符(一般三元)。1、算数运算符用于数值计算,包括:加(+)、减(-)、乘(*)、除(/)、求余...
  • 这篇文章的表总结的很好。这里大概总结一下,便于记忆。 运算符的优先级基本符合常识,除了下面5里面的按位...2. 一元操作符, 前缀++/--,例如(+ / - / ! / ~ / * / & / (type) / sizeof ) 3. 运算符(* /...
  • C++语言包括所有的C运算符,并增加了一些新的运算符。运算符按一操作数(一元运算符)、双操作数(二进制运算符)、三操作数(三元运算符)的优先级顺序解析。
  • 优先级 运算符 ...结合方法 1 ( ) [ ] → · 圆括号 下标运算标 指向结构体成员运算符 结构体成员运算符 自左至右 2 !...
  • 表达式一般由值、变量、运算符、子表达式构成。 最简单的表达式可以是一个简单的值或变量: 1 //数字表达式 "a" //字符常表达式 true //布尔值表达式 a //变量表达式 值表达式的返回值是它本身,变量表达式的...
  • JavaScript中的优先级、结合性、计算顺序
  • 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目   ( ) 圆括号 从左到右     [ ] 方括号 从左到
  • 运算符是一种告诉编译器执行特定的数学或...根据运算符可操作的操作数的个数,可把运算符分为一元运算符、二元运算符和多元运算符(一般三元)。1、算数运算符用于数值计算,包括:加(+)、减(-)、乘(*)、除(/)、求余(%...
  • 运算符
  • 三目运算符 三目运算符可以携带一个条件表达式,根据条件表达式的值确定该三目运算符表达式的值。 运算符 作用 ? : 条件表达式?表达式1 : 表达式2,如果条件表达式的值为真则整个三目表达式的值是表达式1的...
  • 结合性(associativity)规定了相同优先级的运算符的计算次序问题。圆括号可用于覆盖一般的运算符优先规则。所有的Java运算符优先级和结合性都在附录B中。一元加法和一元减法就是平时所说的正负号咯。
  • 运算符

    2019-08-06 14:18:45
    2、一元运算符 3、位运算符 4、比较运算符 5、等值运算符 6、赋值运算符 7、二元逻辑运算符 8、条件运算符(三目运算符) 9、逗号运算符 二、运算符优先级 一、运算符 1、基本运算符 +、-、*、/、%...
  • 运算量参与运算的先后顺序不仅要遵守运算符优先级的规定,还要受运算符结合性的制约,以便决定是由左向右运算还是由右向左运算。 运算符分类: 1、  算术运算符: + - * / 求余 (% ,也称模运算 ) ++ -- ...
  • var a=1; 一. 后自增运算符的副作用 var b=5*a++; //b==5 ,a==1; 一直以为在这个语句中a的值应该一直都是1,在下一语句开始a才是自增后的值,通常情况下确实是这样,但是事实并非... (a++)==1,后自增运算符让计...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,982
精华内容 2,792
关键字:

一元运算符结合性