Java 语法介绍(二):运算符

1:优先级

优先级是指同一式子中多个运算符被执行和次序,同一级里的操作符具有相同的优先级,相同优先级得操作符号相遇是,根据结合性决定运算次序,下面从高到低的优先级列出了运算符。同一行中的运算符优先级相同。

.  []  ()   结合性从左到右

++  --  !  ~   结合性从左到右

*  /  %   结合性从左到右

+  -   结合性从左到右

<<  >>  >>>   结合性从左到右

<  >  <=  >=   结合性从左到右

==  !=   结合性从左到右

&   结合性从左到右

^   结合性从左到右

&&   结合性从左到右

||   结合性从左到右

?:   结合性从右到左

=   结合性从右到左

例如对于表达式:a=b+c*d/(c^d),因为括号优先级最高,所以先计算c^d,接着是c*d,然后除以c^d,最后,把上述结果与b的和存储到变量a中。

2:整型运算符

整型运算符按操作数的多少可分为一元和二元两类,一元运算符一次对一个变量进行操作,二元运算符一次对两个变量进行操作。对于运算来说,如果有一个变量或操作数是长整型的,那么结果就肯定是长整型的,否则即使操作数还没有确定是字节型、短整型或字符型,运算结果都是整型,下表是一元运算符。

运算符 实际操作 例子

-   改变整型数符号   -i

~   位运算:非   ~i

++   加1   i++

--   减1   i--

注:一元取反运算符(-)用来改变整数的正负号,逐位求反把所变量所有是1的位变成0,是0的位变成1,加加和减减(++,--)把变量的值加1或减1。

以下是一个具体例子:

  int i=0;
   int j=1;
   for (i=1;i<10;i++)
   {
   j--;
   System.out.println(i+""+j+"");
   }

一元运算符执行的方式是改变它们所作用的变量的值,对一元取反和逐位求反来说,变量的值并不改变,而对加和减运算(++,--)来说,就量的值被改变了,例如:

    int i=10,j=10,k=10,l=10;
     System.out.println(i+""+j+""+k+""+l+"");
     j++;
     i--;
     ~k;
     -l;
     System.out.println(i+""+j+""+k+""+l+"");

注意:j和i被改变并打印出它们的新值,可是k和l仍然为原来的数值,当在复合表达式中使用一元取反和逐位求余运算时,你实际上是在用一个临时存贮操作数的新值。

++和--既是前置运算符也是后置运算符,这就是说,它们既可以放在操作数前面(++x),也可以放在后面(x++),如果它们被用在复合语句中如:

i=x++; 或 i=++x;

那么第一个语句中x把值赋给i以后再加1,而第二个语句先把x加1,再把新的x值赋给i。

整型运算符的第二种类型是二元运算符,这种运算并不改变操作数的值,而是返回一个必须赋给变量的值,下表列出了二元运算符。

运算符 实际操作 例子

+   加运算   a+b

-   减运算   a-b

*   乘运算   a*b

/   除运算   a/b

%   取模运算   a%b

&   与运算   a&b

|   或运算   a|b

^   异或运算   a^b

<<   左移   a<<b

>>   右移   a>>b

>>>   右移   a>>>b

注意:>>与>>>的基本功能都是右移,但>>是用符号位来填充右移后所留下的空位,而>>>则是用零来填充右移后所留下的空位。

还有一类运算,它们形如:j-=i,这里-=是二元运算-和赋值运算=的复合运算,它等价于j=j-i,这种复合方式适用于所有的二元运算符。

这里有几点关于整型运算进一步说明,首先,整数除法向靠近0的方向取整;其次,如果你除以0或者对0取模,程序就会在运行时被强行中止,如果你的运算结果超出最小极限,或者说是下溢,结果将为0,如果超出了最大极限,就将会导致结果的回绕。

时间: 2024-10-29 10:52:53

Java 语法介绍(二):运算符的相关文章

JAVA语法基础之运算符

运算符是一种特殊符号,用以表示数据的运算.赋值和比较.运算符共分为算术运算符.赋值运算符.比较运算符.逻辑运算符.移位运算符. 一.算术运算符 算术运算符的功能是做各种算术运算,其操作数可以是字符型.整型或浮点型数据.Java中的算术运算符又可以分为两种:单目运算符和双目运算符.单目运算符的操作数只有一个,只对唯一的操作数进行处理.双目运算符操作数有两个,运算过程中由两个操作数参与完成.算术运算符见下表: 运算符 运算 范例 结果 类型 + 正号 +3 3 单目运算符 - 负号 b=4;-b;

Java 语法介绍(三):变量

为了在Java中存储一个数据,必须将它容纳在一个变量之中.而数据类型决定了一个变量可以赋给什么值以及对变量进行什么样的操作.定义一个变量的两个基本要素是:类型和标识符,通常你可以用如下语法去说明变量: type identifer[,identifer]; 该语句告诉编译器用"type"的类型和以"identifer"为名字建立一个变量,这里的分号将告诉编译器这是一个说明语句的结束:方格中的逗号和标识符表示你可以把几个类型相同的变量放在同一语句进行说明,变量名中间用

Java 语法介绍(一):Java语言的基本组成

Java语言主要由以下五种元素组成:标识符.关键字.文字.运算符和分隔符.这五种元素有着不同的语法含义和组成规则,它们互相配合,共同完成Java语言的语意表达.下面我们分别予以讲解. 1:标识符 变量,类和方法都需要一定的名称,我们将这种名称叫做标识符.Java中对标识符有一定的限制.首先:所有的标识符的首字符必须是字母(大小写).下划线_或美元符¥:其次标示符是由数字(0--9),所有从A--Z的大写字母.a--z的小写字母和下划线_.美元符¥和所有在十六进制0xc0前的ASCII码等构成:第

Java语法基础之运算符学习笔记分享_java

一.运算符 运算符包括下面几种: 算术运算符赋值运算符比较运算符逻辑运算符位运算符三目运算符 最不常用的是位运算符,但也是最接近计算机底层的. 1.算术运算符 (1)+的几种用法:加法.正数.字符串连接符 (2)除法的时候要注意一个问题:整数相除,只能得到整数.要想得到小数,可以将数据自身*1.0,即将数据自身先转换为浮点型. 2.赋值运算符 符号 = += -= *= /= %= 注:=为基本的赋值运算符,其他的为扩展的赋值运算符 面试题: (1)short s=1, s = s+1; (2)

Java 语法介绍(四):数组

1:数组说明 数组是Java语言中的特殊类型.它们存放能通过索引来引用的一系列对象,另外,你可以定义数组的数组,下面是一些示例: int i[]; char C[]; float f[][]; 2:数组运算符 在JAVA中数组的分配是通过使用new运算符建立数组然后把它赋给变量,如: int i[]=new int[10]; 前面这个例子建立了一个包括10个整型变量的数组并把它赋给i,你将得到按数字顺序的变量i[0],i[1],......,i[8],i[9],注意下标是从第一个元素的0开始,到

Java 语法介绍(五):条件控制

条件控制:if和switch 1:条件语句 条件语句是程序设计中最常用的语句,用他来选择程序的执行流程,Java中的基本条件判断语句是if...else...语句.其机构为: if (条件表达式){语句1}Else{语句2}语句3 "条件表达式"的值为真时执行"语句1",然后执行语句3:否则执行"语句2",然后执行语句3. 下面是一个用if--else语句构造多分支程序的例子: if(a>5) b=1else if(a>4) b=2e

Java 语法介绍(六):循环

循环: for,while和do Java中有三种循环控制语句,他们是:for语句.while语句和do语句,下面分别说明这三种语句的结构. 1:for循环 for语句的格式为: for (初始化语句; 条件语句; 控制语句) { 语句1 ; 语句2 ; .... 语句n ; } for 语句的执行顺序是:首先执行"初始化语句":然后测试"条件语句":若条件成立,则执行语句1到语句n:然后执行"控制"语句:接着再测试条件语句是否成立,如果成立则重

Java 语法介绍(七):Brake和Label

1:break break语句提供了一种方便的跳出循环的方法. boolean test=true; int i=0; while(test){ i++; if(i>=10) break;} 执行这段程序时,尽管while条件表达式始终为真,全循环只运行10次. 2:标号label 标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环语句中遇到break时,不管其它控制变量,都会终止.但是,当你嵌套在几层循环中想退出循环时又会怎样呢?正常的break只退出一重循环,你可以用标号

Java语法基础之for语句练习

以下是对Java语法基础中的for语句进行了详细介绍,需要的朋友可以过来参考下   控制语句--for练习语句的嵌套应用 累加求和,计数器 循环嵌套一.语句的嵌套应用语句嵌套形式.其实就是语句中还有语句.形式多种多样,没有固定的格式和套路.1.打印偶数for(int x=1;x<=10;x++) {  if(x%2==1) continue;  System.out.prinln("x="+x); }二.累加求和,计数器1.获取1~10的和,并打印.思路://1,定义变量用于存储