Java基础教程-运算符

所谓运算符,就好比日常生活中的运算符号“+”、“-”、“*”、“/”,这些符号几乎天天都要用到。在Java中,运算符就和日常生活中的运算符号一样,起到运算的作用,但是不再是这么简单的运算符。在本章中就来介绍这些运算符,通过本章,同学们应该完成下面的目标。

  1. 了解算术运算符的概念和熟练使用算术运算符。
  2. 了解关系运算符的概念和熟练使用关系运算符。
  3. 了解逻辑运算符的概念和熟练使用逻辑运算符。
  4. 了解三元运算符的概念和熟练使用三元运算符。
  5. 了解位运算符的概念和熟练使用位运算符。
  6. 了解位移运算符的概念和熟练使用位移运算符。
  7. 了解赋值运算符的概念和熟练使用赋值运算符。

3.1 算术运算符

算术运算符是大家最熟悉不过的了,比如“+”、“-”、“*”、“/”。在本节中就先来介绍算术运算符如何应用和有哪些注意事项。

  • +:加法运算符,也可做字符的连接用途。
  • -:减法运算符。
  • *:乘法运算符。
  • /:除法运算符。
  • %:求余运算符。

3.1.1 “+” :加法运算符

加法运算符和日常生活中“+”是一样的,都是做两个数值的加法运算。下面举例在Java中的形式。

//申明两个整数
int i = 33;
int j = 44;
//将33和44做加法运算
int n = i + j;

结果是:n=77

3.1.2 “-” :减法运算符

减法运算符和日常生活中“-”是一样的,都是做两个数值的减法运算。下面举例在Java中的形式。

//申明两个整数
int i = 66;
int j = 77;
//将66和77做减法运算
int n = i - j;

结果是:n=-11

3.1.3 “*” :乘法运算符

乘法运算符“*”和日常生活中乘号“×”类似,只是符号不一样而已,都是做两个数值的乘法运算。下面举例在Java中的形式。

//申明两个整数
int i = 6;
int j = 7;
//将6和7做乘法运算
int n = i * j;

结果是:n=42

3.1.4 “/” :除法运算符

除法运算符“/”和日常生活中的除号“÷”类似,只是符号不一样而已,都是做两个数值的除法运算。下面举例在Java中的形式。

//申明两个整数
int i = 24;
int j = 2;
//将24和2做乘法运算
int n = i / j;

结果是:n=12

3.1.5 “%” :求余运算符

求余运算符“%”和日常生活中的除法求余类似。也是求两个数值的除法运算的余数。下面举例在Java中的形式。

//申明两个整数
int i = 24;
int j = 5;
//将24和5做求余运算
int n = i % j;

结果是:n=4

3.2 自增自减运算符

所谓自增减运算符,就是两个数做加减法运算将运算的结果赋值给做运算的变量。如下所示。

int i = 4;
i++;
int j = 4;
j = j + 1;

结果是:i=5, j=5

3.3 关系运算符

关系运算符描述的是一种关系,既然描述的是关系那结果就为对或不对。在Java里就表示为真或假。下面看关系运算符的分类。

  • “==” :表示等于。
  • “!=” :表示不等于。
  • “>=” :表示大于等于。
  • “<=” :表示小于等于。
  • “>” :表示大于。
  • “<” :表示小于。

关系运算符比较的是基本类型的话,就表示比较的是值是否相等。如果用“==”和“!=”比较的是对象的话就表示比较的是对象引用是否相等。

3.3.1 “==”、“!=”

等于和不等于运算符比较的是运算数的等于和不等于,结果为ture和false。即真和假。例如下面的例子。

//定义两个整型的变量
int i = 4;
int j = 4;
  
boolean b1 = (i == j);
boolean b2 = (i != j);
         
//创建两个对象
String s1 = new String ();
String s2 = new String ();
         
boolean b3 = (b1 == b2);
boolean b4 = (s1 != s2);

结果是:b1=true, b2=false, b3=false, b4=true

3.3.2 “>”、“<”、“>=”、“<=”

大于和小于运算符比较的是运算数的大于和小于,结果为ture和false。即真和假。例如下面是使用这些关系运算符的例子。

//定义两个整型变量
int i = 5;
int j = 4;
boolean b1 = i > j;
boolean b2 = i < j;
boolean b3 = i >= j;
boolean b4 = i <= j;

结果是:b1=true, b2=false, b3=true, b4=false

3.4 逻辑运算符

逻辑运算符,其实就是比较的二进制数的逻辑关系,运算结果为true、false。逻辑运算符包括如下。

  • 逻辑与运算符:“&&”
  • 逻辑或运算符:“||”
  • 逻辑非运算符:“!”

3.4.1 “&&” 与运算符

“&&”运算符比较的是符号两边的表达式的真假。通过下面代码说明“&&”运算符。

//修改上节例子,如下形式
public class HelloWorld10
{
    public static void main(String args[])
    {
        boolean n = (4 > 3) && (2 > 8);
        System.out.println(n);
    }
}

结果是:false

口诀:任意一边为假结果为假

3.4.2 “||” 或运算符

“||”运算符比较的是符号两边的表达式的真假。通过下面代码说明“||” 或运算符。

//修改上节例子,如下形式
public class HelloWorld11
{
    public static void main(String args[])
    {
        boolean n = (4 > 3) || (2 > 8);
        //打印并显示结果
        System.out.println(n);
    }
}

结果是:true

口诀:任意一边为真结果为真

3.4.3 “!” 非运算符

“!”非运算符是把符号右边的表达式的结果即true、false取反。如为true ,取反为false;如为false,取反为true。
通过下面代码说明“!” 非运算符。

//修改上节例子,如下形式
public class HelloWorld12
{
    public static void main(String args[])
    {
        boolean n = !(2 > 8);
        //打印并显示结果
        System.out.println(n);
    }
}

由于2 > 8是false,取反的结果就是:true

3.4.4 总结逻辑运算符

  • “&&”运算符,符号的两边都为true时,结果为true。只要有一边不为true,结果即为false。
  • “||”运算符,符号的两边只要有一边为true,结果就为true,如果都为false,结果即为false。
  • “!”运算符,符号右边为true,结果就为false,符号右边为false,结果就为true。

3.5 三元运算符

所谓三元运算符,是对三个表达式进行的集中比较,表达式1的结果为true时,就为第二个表达式,如果为false时,就为第三个表达式。语法是: 表达式1 ? 表达式2 : 表达式3

通过下面代码说明三元运算符。

//修改上节例子,如下形式
public class HelloWorld13
{
    public static void main(String args[])
    {   
        //4 < 3表达式的结果为true和false的其中一个。
        boolean n = (4 < 3) ? false : true;
        //打印并显示结果
        System.out.println(n);
    }
}

结果是:true

3.6 位运算符

所谓位运算符,就是将操作数转换成二进制,然后按位进行比较。运算符包括:

  • “&”:按位与运算符
  • “|”:按位或运算符
  • “^”:按位异或运算符
  • “>>”:带符号右移运算符
  • “<<”:带符号左移运算符
  • “>>>”:无符号右移运算符

位运算符

3.6.1 “&” 与运算符

按位与运算符,两个数同位都为1的时候即为1,有一边不是1的话就为0,即结果为false。通过下面代码的演示来说明“&”与运算符。

//修改上节例子,如下形式
public class HelloWorld14
{
    public static void main(String args[])
    {
        int n = 4 & 3;
        //打印并显示结果
        System.out.println(n);
    }
}

结果是:0

3.6.2 “|” 或运算符

按位或运算符,两个数同位有一个为1的时候即为1。通过下面代码的演示来说明“|”或运算符。

//修改上节例子,如下形式
public class HelloWorld15
{
    public static void main(String args[])
    {
        int n = 4 | 3;
        //打印并显示结果
        System.out.println(n);
    }
}

结果是:7

3.6.3 “^” 异或运算符

按位异或运算符,两个数同位都为1的时候即为0。有一个为1即为1。通过下面代码的演示来说明“^”异或运算符。

//修改上节例子,如下形式
public class HelloWorld16
{
    public static void main(String args[])
    {
        int n = 4 ^ 3;
        //打印并显示结果
        System.out.println(n);
    }
}

结果是:7

3.6.4 “>>” 右移运算符

右移运算符“>>”是把操作数转换成二进制数向右移动指定的位数。右移运算符是有符号的,如果为正数就补0,如果为负数就补1。通过下面代码的演示来说明“>>”右移运算符。

//修改上节例子,如下形式
public class HelloWorld17
{
    public static void main(String args[])
    {
        int n = 7 >> 2;
        //打印并显示结果
        System.out.println(n);
    }
}

结果是:1

3.6.5 “<<” 左移运算符

左移运算符“<<”是把操作数转换成二进制数向左移动指定的位数。左移运算符是有符号的,如果为正数就补0,如果为负数就补1。通过下面代码的演示来说明“<<”左移运算符。

//修改上节例子,如下形式
public class HelloWorld18
{
    public static void main(String args[])
    {
        int n = 7 << 2;
        //打印并显示结果
        System.out.println(n);
    }
}

结果是:28

3.6.6 “>>>” 无符号右移运算符

无符号右移运算符“>>>”是把操作数转换成二进制数向右移动指定的位数。无符号右移运算符全在最高位上补0。
通过下面代码的演示来说明“>>>”无符号右移运算符。

//修改上节例子,如下形式
public class HelloWorld19
{
    public static void main(String args[])
    {
        int n = 7 >>> 2;
        //打印并显示结果
        System.out.println(n);
    }
}

结果是:1

3.7 赋值运算符

所谓赋值运算符就好比在日常生活中的a=3,即把3赋值给变量a的意思是一样的,以后就可以用a表示3这个数值了。

3.7.1 一般赋值运算符

一般运算符使用“=”,在编写代码里最常见,也是很容易理解的。如:int n = 3;
这一条代码的含义是把数值3赋值给整型的变量n。

3.7.2 运算赋值运算符

运算赋值运算符和一般赋值运算符很相似,也是赋值用的,但它具有运算的功能。通过下面代码的演示来说明运算赋值运算符。

public class HelloWorld20
{
    public static void main(String args[])
    {
        int n = 7;
        int j = 0;
        j += n;
        //打印并显示结果
        System.out.println(j);
    }
}

结果是:7

3.8 运算符之间的优先级

运算符的运算优先级是有一定的顺序的。括号拥有最高的优先级,接下来是一元运算符,最后是二元运算符,如表所示。

运算符优先级

3.9 综合练习

1.区分前置自增减运算符和后置自增减运算符的不同。

【提示】通过程序来看这个问题。

public class LianXi1
{
    public static void main(String args[])
    {
        int a=1;
        int b=1;
        System.out.println("使用后置运算符的结果为:"+(a++));   //显示后置结果
        System.out.println("使用前置运算符的结果为:"+(++b));   //显示前置结果
    }
}

2.三元运算符的应用有哪些?

【提示】同样还是通过程序来看这个问题。

public class LianXi2
{
    public static void main(String args[])
    {
        int a=3;
        int b=4;
        System.out.println("使用条件运算符显示");
        String s=(a < b) ? "a小于b" : "a大于b";
        System.out.println(s);
        System.out.println("使用if条件语句显示");
        if(a < b)
        {
            System.out.println("a小于b");
        }
        else
        {
            System.out.println("a大于b");
        }
    }
}

3.10 小结

通过对本章各种运算符的学习,让同学们对基本类型的运算有了新的认识,虽然很简单,但对以后学习有很大帮助。虽然运算符是比较简单的,但其中也是有很多知识需要讲解的。在本章中最常用的运算符是自增自减运算符和赋值运算符,这也是本章的重点。在下一章中将继续学习Java基本语法中的流程控制语句。

欢迎加入AIDE教程网官方交流群:758110864

 版权声明:本文为AIDE教程网原创文章,转载请附上原文出处链接和本声明
本文链接: https://www.aidemx.cn/1883.html

梦雪

专注于AIDE教程分享

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐