所谓运算符,就好比日常生活中的运算符号“+”、“-”、“*”、“/”,这些符号几乎天天都要用到。在Java中,运算符就和日常生活中的运算符号一样,起到运算的作用,但是不再是这么简单的运算符。在本章中就来介绍这些运算符,通过本章,同学们应该完成下面的目标。
了解算术运算符的概念和熟练使用算术运算符。
了解关系运算符的概念和熟练使用关系运算符。
了解逻辑运算符的概念和熟练使用逻辑运算符。
了解三元运算符的概念和熟练使用三元运算符。
了解位运算符的概念和熟练使用位运算符。
了解位移运算符的概念和熟练使用位移运算符。
了解赋值运算符的概念和熟练使用赋值运算符。
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 “<
左移运算符“<
//修改上节例子,如下形式
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教程网官方交流群:961607042