📜  Java的基本运算符

📅  最后修改于: 2021-04-29 14:51:13             🧑  作者: Mango

Java提供了丰富的运算符环境。我们可以将Java中的基本运算符分为以下几类:

  • 算术运算符
  • 关系运算符
  • 按位运算符
  • 赋值运算符
  • 逻辑运算符

现在让我们详细了解这些运算符。

  1. 算术运算符:算术运算运算符用于对操作数执行算术/数学运算。
    • 加法(’+’) :相加两个操作数
    • 减法(’-‘) :两个操作数相减
    • 乘法(’*’) :两个操作数相乘
    • 除法(’/’) :将第一个操作数除以第二个。
    • 模量(’%’) :返回第一个操作数除以第二个操作数的余数
    • 递增(’++’) :递增整数的值。当放置在变量名之前(也称为pre-increment 运算符),其值立即增加。例如, ++ x并将其放在变量名(也称为post-increment 运算符)之后,其值会暂时保留,直到执行此语句为止,并且在执行下一条语句之前对其进行更新。例如, x ++。
    • 减量(’–’) :减小整数的值。当放置在变量名(也称为pre-decrement 运算符)之前时,其值立即减小。例如, –x
      并且当将其放在变量名之后(也称为post-decrement运算符)时,其值将暂时保留,直到执行该语句为止,并且在下一个语句执行之前对其进行更新。例如, x–

    :增量和减量运算符被称为,因为他们与一个单一的操作工作,而算术运算运算符的其余部分被称为二进制算术运算运算符,因为他们两个的操作数目算术运算运算符。

    算术运算符

    //Java program to explain arithmetic operators
    import java.util.*;
    class A{
          
        public static void main(String args[])
        {
          
        int a = 10, b = 4, res;
       
        //printing a and b
        System.out.println("a is "+a+ " and b is "+ b);
       
        res = a+b; //addition
        System.out.println("a+b is "+res);
       
        res = a-b; //subtraction
        System.out.println("a-b is "+res);
       
        res = a*b; //multiplication
        System.out.println("a*b is "+res);
       
        res = a/b; //division
        System.out.println("a/b is "+res);
       
        res = a%b; //modulus
        System.out.println("a%b is "+res);
          
        }
    }
    

    输出

    a is 10 and b is 4
    a+b is 14
    a-b is 6
    a*b is 40
    a/b is 2
    a%b is 2
    
  2. 关系运算符:关系运算符确定一个操作数与另一个操作数之间的关系。关系运算符评估两个操作之间的关系,如果该关系存在,则返回true,否则返回false
    • ‘==’运算符:检查两个给定的操作数是否相等。如果是这样,则返回true。否则,它返回false。例如, 5 == 5将返回true。
    • ‘!=’运算符:检查两个给定的操作数是否相等。如果不是,则返回true。否则,它返回false。它是’==’运算符的精确布尔补码。例如, 5!= 5将返回false。
    • ‘>’运算符:检查第一个操作数是否大于第二个操作数。如果是这样,则返回true。否则,它返回false。例如, 6> 5将返回true。
    • ‘<‘运算符:检查第一个操作数是否小于第二个操作数。如果是这样,则返回true。否则,它返回false。例如, 6 <5将返回false。
    • ‘> =’运算符:检查第一个操作数是否大于或等于第二个操作数。如果是这样,则返回true。否则,它返回false。例如, 5> = 5将返回true。
    • ‘<=’运算符:检查第一个操作数是否小于或等于第二个操作数。如果是这样,则返回true。否则,它返回false。例如, 5 <= 5也将返回true。
    //Java program for relational operators
    import java.util.*;
    class A{
          
        public static void main(String args[])
        {
          
        int a=10, b=4;
       
        // relational operators
        // greater than example
        if (a > b)
            System.out.println("a is greater than b");
        else System.out.println("a is less than or equal to b");
       
        // greater than equal to
        if (a >= b)
            System.out.println("a is greater than or equal to b");
        else System.out.println("a is lesser than b");
       
        // less than example
        if (a < b)
            System.out.println("a is less than b");
        else System.out.println("a is greater than or equal to b");
       
        // lesser than equal to
        if (a <= b)
            System.out.println("a is lesser than or equal to b");
        else System.out.println("a is greater than b");
       
        // equal to
        if (a == b)
            System.out.println("a is equal to b");
        else System.out.println("a and b are not equal");
       
        // not equal to
        if (a != b)
            System.out.println("a is not equal to b");
        else System.out.println("a is equal b");
       
              
        }
    }
    

    输出

    a is greater than b
    a is greater than or equal to b
    a is greater than or equal to b
    a is greater than b
    a and b are not equal
    a is not equal to b
    
  3. 按位运算符: Java提供了几种按位运算运算符,可与longintshortcharbyte整数类型一起使用。按位运算符对整数的二进制表示形式进行逐位运算。这些运算符对它们的操作数的各个位起作用。
    例如 –
    Assume a = 9 and b = 7.
    In binary form,
    a = 1001
    b = 0111
    ----------
    a & b = 0001
    

    Java中可用的不同按位运算运算符为:

    • &(按位与) :按位&运算符对操作数逐位执行二进制AND运算。 a&b = 0001,即1
    • | (按位或) :按位|运算符对操作数逐位执行二进制“或”运算。 a | b = 1111,即15
    • ^(按位XOR) :按位^运算符对操作数逐位执行二进制XOR操作。 a ^ b = 1110,即14
    • 〜(按位补码) :按位〜运算符在操作数上逐位执行二进制NOT运算。 〜b = 1000等于8
    • <<(左移) :此运算符将左操作数的位向左移右操作数指定的次数。 a << 1 = 10010 = 18
    • >>(右移) :此运算符将左操作数的位向右移右操作数指定的次数。 a >> 1 = 0100 = 4
    • >>>(零填充右移) :右移零填充运算符。左操作数的值向右移位由右操作数指定的位数,并且移位的数字将替换为零。 a >>> 2 = 0010 = 2
  4. 赋值运算符:赋值运算符用于将值分配给变量。赋值运算符的一般形式为:

    var =表达式

    使用赋值运算符的不同方式:

    • ‘=’ :这是最简单的赋值运算符。它将左操作数的值分配给右操作数。例如,a = 3。
    • ‘+ =’ :此运算符首先将左右操作数相加,然后将结果分配给左操作数。例如,a + = b等效于a = a + b。
    • ‘-=’ :此运算符首先从左侧操作数中减去右侧操作数,然后将结果分配给左侧操作数。例如,-= b等效于a = a – b。
    • ‘* =’ :此运算符首先将右操作数和左操作数相乘,然后将结果分配给左操作数。例如,a * = b等效于a = a * b
    • ‘/ =’ :此运算符首先将左操作数除以右操作数,然后将结果分配给左操作数。例如,a / = b等效于a = a / b
    • ‘%=’ :此运算符使用左和右操作数计算模数,然后将结果分配给左操作数。例如,%= b等于a = a%b

    同样,我们也可以使用运算符,例如^ =&=| =

  5. 逻辑运算符:逻辑运算符执行逻辑运算,例如逻辑与,逻辑或等。让我们假设变量a保持布尔值true,b保持布尔值false 。以下是一些我们可以使用的逻辑运算符:
    • 逻辑AND(’&&’) :如果左右操作数均为true,则此运算符将返回true,否则将返回false。例如, a && bfalse
    • 逻辑OR(’||’) :如果左右操作数中的任何一个为true,则此运算符将返回true。当左右操作数均为false时,它将返回false。例如, || bTrue
    • 逻辑NOT(’!’) :这是一元运算运算符,可以与单个操作数一起使用。如果操作数为false,则返回true;如果操作数为true,则返回false。例如, !afalse!btrue

    带有两个变量的示例真值表:
    真值表

  6. 其他运营商
    • instanceof运算符
      顾名思义,该运算符用于检查对象或引用变量是否具有特定的类类型或接口类型。使用instanceof运算符的语法:
      (Object or reference variable ) instanceof  (class or interface type)
      

      该运算符返回布尔值true或false。如果运算符人员的左侧的对象是类的对运算符者的右侧,然后运算符将真,否则为false的类型。

      //Java program for instanceof operator
        
      public class InstanceOf {
        
         public static void main(String args[]) {
        
            String name = "GeeksforGeeks";
                
            //instanceof operator will return true here 
            //as the object name is of type String
            boolean res = name instanceof String;
            System.out.println( res );
         }
      }
      

      输出:

      true
      
    • 条件运算符:我们通常在评估条件时使用if-then-else语句。 Java包含一个特殊的运算符’?’可以替换if-then-else语句来评估条件。 “?”的一般形式运算符是:
      expression1 ? expression2 : expression3
      
      expression1: expression that evaluates to a boolean value i.e. either true or false.
      expression2: if expression1 evaluates to true then expression2 is evaluated
      expression3: if expression1 evaluates to false then expression3 is evaluated.
      
      //Java program to illustrate coditional operators
        
      class Conditional
      {
          public static void main(String args[])
          {
              int num1 = 4;
              int num2 = 5;
                
              //using conditional operator
              num1 = num1>num2 ? num1 - num2 : num1 + num2;
                
              //num1 stores the value after evaluation of either second 
              // or third expression depending on the condition 
              //provided in the first expression
              //num1 becomes 4+5 = 9
                
              //printing num1
              System.out.println(num1);
                
          }
      }
      

      输出:

      9

优先顺序表