zoukankan      html  css  js  c++  java
  • 运算符与表达式


    运算符

      运算符就是用来对操作数进行运算的符号。java 中的运算符,基本上可以分为算数运算符、关系运算符、逻辑运算符、赋值运算符、位运算符和条件运算符等。


     1.算术运算符

      算术运算符主要用在数学表达式中,java 语言主要定义了“+”、“-”、“*”、“/”和“%” 5个双目运算符,“++”、“--”和“-” 3个单目运算符。java 语言提供运算符见下表:

    算术运算符的含义及示例
    算术运算符 含义 用法 示例
    + 加法 op1+op2 a+b
    - 减法 op1-op2 a-b
    * 乘法 op1*op2 a*b
    / 除法 op1/op2 a/b
    % 模运算 op1%op2 a%b
    ++ 自增运算 op1++或++op1 a++ ; ++a
    -- 自减运算 op1--或--op1 a-- ; --a
    - 取反运算 -op1 -a

      代码示例:

     1 public class Test{
     2         public static void main(String[] args){
     3             int a=5;
     4             boolean  b = true;
     5             char c = 'a';
     6             //int r1 = a+b;算术运算符不能用在布尔类型上,编译出错
     7            int r2 = a+c;
     8            System.out.println("a+c="+r2);
     9         }
    10 }

      注:算术运算符可以用在char类型上,在java 中,实际是把char类型看作是 int 类型的一个子集。

        整型除法总是返回整数作为商,其结果四舍五入到个位,即使其结果存储在浮点型的变量中也是如此。

        一个整数除以零,则会产生一个被0除异常(编译通过,运行时异常)。

        当一个证浮点型数除以0时,会产生一个正无穷大的值Infinity,当一个负浮点型数除以0时,会产生一个负无穷大的值-Infinity。

        java 中对于取余操作,其操作数 可以是浮点型。在浮点数求余运算时,如果是被除数为0,则结果为NaN,表示不知道是什么结果。


    2.关系运算符

      关系运算符用来比较两个值的大小关系,其运算结果是个布尔型值:true 或 false 。java 语言提供的关系运算符都是双目运算符,见下表:

    关系运算符
    运算符 含义 用法 返回结果
    > 大于 op1>op2 若op1大于op2,则结果为true,否则为false
    >= 大于等于 op1>=op2 若op1大于或等于op2,则结果为true,否则为false
    < 小于 op1<op2 若op1小于op2,则结果为true,否则为false
    <= 小于等于 op1<=op2 若op1小于或等于op2,则结果为true,否则为false
    == 等于 op1==op2 若op1等于op2,则结果为true,否则为false
    != 不等于 op1!=op2 若op1不等于op2,则结果为true,否则为false

      注:关系运算符的结果返回true 或 false ,而不是C/C++的数字 1 或 0 。


    3.逻辑运算符

      逻辑运算符主要是用来实现布尔型数据“与”、“或”和“非”运算,运算结果仍然是布尔型数据。其中,“与”和“或”是双目运算符,“非”是单目运算符。如下表:

    逻辑运算符
    运算符 含义 用法 返回结果
    && 逻辑与 op1&&op2 op1,op2都true时结果才为true
    || 逻辑或 op1 || op2 op1,op2都false时结果才为false
    ! 逻辑非 ! op1 op1为true时结果为false,op1为false时结果为true

    4.赋值运算符

      赋值运算符是双目运算符,其作用是为变量赋值。java 中的赋值运算符有两种:普通赋值运算符和扩展赋值运算符。普通赋值运算符“=”的 左边是变量,右边是表达式。扩展赋值运算符可以看做是相应的二元运算与赋值运算的结合,主要包括“+=”、“-=”、“*=”、“/=”、“%=”、“&=”、“|=”等。

      扩展赋值运算符有两个好处。第一,比标准的等式要紧凑。第二,有助于提高java的运算效率。


    5.位运算符

      位运算主要是将整数操作数转换成二进制数据,然后在进行按位比较和移位运算,见表:

    位运算符
    运算符 用法 描述
    & op1 & op2 按位与:若两位都为1,则为1,否则为0
    | op1| op2 按位或:若两位之一为1 或都为1则为1,否则为0
    ^ op1 ^ op2 按位异或:当且仅当其中一位为1时为1,否则为0
    ~ ~op 按位取反:1变为0,0变为1
    >> op1 >> op2 将op1 中所有二进制位向右移动op2位,左侧用符号位填充
    << op1 << op2 将op1 中所有二进制位向左移动op2位,右侧用0填充
    >>> Op1 >>> op2 将op1 中所有二进制位向右移动op2位,左侧用0填充

    6.条件运算符

      条件运算符“?:” 是唯一一个三目运算符,其具体语法格式如下:

          表达式1?表达式2:表达式3;

      先求解表达式1,若其值为TRUE ,则将表达式2 的值作为整个表达式的取值,否则将表达式3的值作为整个表达式的取值。


    7.其它运算符

      除了上面介绍的几类运算符,java还支持以下几类运算符。

        (1)强制类型转换运算符“type” :将某一种类型的值转换为type类型。

        (2)下标运算符“[]”:用于数组的声明、创建和访问数组元素。

        (3)分量运算符“.”:用于访问实例对象的成员。

        (4)动态内存分配运算符“new”:创建新对象。

        (5)instanceof:是一个二元操作符,测试它左边的对象是否是它右边的类的实例,返回布尔类型数据。


    表达式

      表达式是由运算符与操作数组组成的式子。操作数包括常量、变量、方法和其他名字的标识符。一个常量或变量是最简单的表达式。

      表达式主要用来进行计算的,并返回计算结果。在java中,表达式主要有以下几种:算术表达式、关系表达式、逻辑表达式和赋值表达式。

    运算符的优先级及结合性
    优先级 运算符 结合性
    1 。[] () 从左向右
    2 +(单目运算取正) -(单目运算取负) ~ ! ++ -- (type) new 从右向左
    3 */% 从左向右
    4 + - 从左向右
    5 >>  <<  >>> 从左向右
    6 < <=  >  >= instanceof 从左向右
    7 == != 从左向右
    8 & 从左向右
    9 ^ 从左向右
    10 | 从左向右
    11 && 从左向右
    12 || 从左向右
    13 ?: 从右向左
    14 =  +=  *=  /=  -= %=  ^=  &== |=  >>=  <<=  >>>= 从右向左

  • 相关阅读:
    SQL Server-数据库架构和对象、定义数据完整性(二)
    SQL Server-语句类别、数据库范式、系统数据库组成(一)
    ASP.NET WebAPi之断点续传下载(下)
    ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?
    ASP.NET WebAPi之断点续传下载(中)
    ASP.NET WebAPi之断点续传下载(上)
    ASP.NET WebAPi(selfhost)之文件同步或异步上传
    JSTL fn:contains()函数
    用jstl标签判断一个字符串是否包含了另一个字符串
    fn:replace()函数
  • 原文地址:https://www.cnblogs.com/xiaonanman/p/6671164.html
Copyright © 2011-2022 走看看