运算符和表达式

来源:互联网 发布:青山水利造价软件 编辑:程序博客网 时间:2024/05/30 04:24

一、运算符

对各种类型的数据进行加工的过程称为运算;
表示各种不同运算的符号称为运算符;
参与运算的数据称为操作数。

按操作数的数目来分,可有:
一元运算符:++、–
二元运算符:+、-、>
三元运算符: ? :

基本运算符按功能划分,有下面几类:

1.算术运算符:+,-,*,/,%,++,– ,例:

2+3  //加法求和,整个表达式值为55-2  //减法求差,整个表达式值为32*3  //乘法求积,整个表达式值为610/2 //除法求商,整个表达式值为510%4 //求余,整个表达式值为2++6  //前自加,在自身数据的基础上+1,整个表达式值为76++  //后自加,在自身数据的基础上+1,整个表达式值为7--6  //前自减,在自身数据的基础上-1,整个表达式值为66--  //后自减,在自身数据的基础上-1,整个表达式值为610/3  //10除以3,所得值本应为3.33无限循环,但因为10和3都为int类型,所以得到的结果也是一个int类型,3.33无限循环会自动转为int类型,所以这个表达式的值实际为3

2.关系运算符:> , < , >= , <= , == , != ,判断两个表达式或变量间的某种关系是否成立,成立返回true,不成立返回false,举例:

i=3;j=5;i>j  //比较i是否大于j,因为i为3,j为5,所以这个表达式不成立,返回布尔值falsei<5  //比较i是否小于j,表达式返回布尔值truei>=5  //比较i是否大于或等于j,表达式返回falsei<=5  //比较i是否小于或等于j,表达式返回truei==5  //比较i是否等于j,表达式返回falsei!=5  //比较i是否不等于j,表达式返回true

3.逻辑运算符:! , && , || ,只对返回布尔类型的表达式或为布尔类型的变量进行处理,例:

flag=3>5;  //3>5 返回false,flag将被赋值为false!flag;  //逻辑非运算符,表达式返回flag的反义,即trueflag&&3<5; //逻辑且运算符,当运算符两端的表达式或变量都为true时,整个表达式才返回true,否则都为false3<5返回true,但flag的值为false,所以,这个表达式返回falseflag||3<5; //逻辑或运算符,当运算符两端的表达式或变量都为false时,整个表达式才返回false,只要有其中一个为true,整个表达式返回true,flag的值为false,但3<5返回true,所以,这个表达式返回true

4.赋值运算符: = ,以及其扩展赋值运算符,如 +=,-=,*=,/= 等

int i;i=3; //将i赋值为3i+=3; //等效于i=i+3i-=3; //等效于i=i-3i*=3; //等效于i=i*3...

5.条件运算符: ? : ,例:

int i=0;int result;result = ( i==0 ? 0 : i*10);//先判断问号前的表达式是否成立,若成立返回问号后的值,否则返回冒号后的值。例子中,i==0成立,整个条件运算表达式返回为0,所以result将被赋值为0

6.位运算符: >> , << , >>> , & , | , ^ , ~ 。适用于运算二进制数

a=10011101;b=00111001;a<<3; //等于11101000a>>3; //等于11110011      a>>>3;

7.其它:

分量运算符"." : System.out.print("Hello World!");下标运算符"[]": int num=array[2];实例运算符"instanceof" ;内存分配运算符"new" ;...

二、表达式

表达式是由操作数和运算符按一定的语法形式组成的符号序列,一个常量或变量的名字是最简单的表达式,其值即为该常量或变量的值;表达式的值还可以作为其它运算的操作数,形成更复杂的表达式。

表达式的类型,由运算以及参与运算的操作数的类型决定,如:

布尔型表达式:false||true //表达式的类型为布尔类型,返回一个布尔值整数类型表达式:10/3 //表达式的类型为整数类型,返回一个整数3

运算符的优先次序
一个表达式若含有多个运算符,则这些运算符将按照运算符的优先顺序来被进行运算,整个表达式的运算从高级到低级,同级运算符从左到右进行

int result;int i=3;result= (i%2==1 ?1:0)++;//1.运行()中的运算 2.运行i%2 3.运行?:运算符 4.运行++运算 5.运行=赋值运算,最终result将被赋值为2System.out.print(i++);//将输出3,先运行print()输出i为3,后运行i++运算,得到4System.out.print(++i);//将输出5,前一个输出后,i++得到4,这里先运行++i,得到5,后运行print()输出i为5

这里写图片描述

0 0
原创粉丝点击