运算符和表达式

一、运算符

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

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

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

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

2+3  //加法求和,整个表达式值为5
5-2  //减法求差,整个表达式值为3
2*3  //乘法求积,整个表达式值为6
10/2 //除法求商,整个表达式值为5
10%4 //求余,整个表达式值为2
++6  //前自加,在自身数据的基础上+1,整个表达式值为7
6++  //后自加,在自身数据的基础上+1,整个表达式值为7
--6  //前自减,在自身数据的基础上-1,整个表达式值为6
6--  //后自减,在自身数据的基础上-1,整个表达式值为6

10/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,所以这个表达式不成立,返回布尔值false
i<5  //比较i是否小于j,表达式返回布尔值true
i>=5  //比较i是否大于或等于j,表达式返回false
i<=5  //比较i是否小于或等于j,表达式返回true
i==5  //比较i是否等于j,表达式返回false
i!=5  //比较i是否不等于j,表达式返回true

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

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

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

int i;
i=3; //将i赋值为3
i+=3; //等效于i=i+3
i-=3; //等效于i=i-3
i*=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; //等于11101000
a>>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将被赋值为2
System.out.print(i++);//将输出3,先运行print()输出i为3,后运行i++运算,得到4
System.out.print(++i);//将输出5,前一个输出后,i++得到4,这里先运行++i,得到5,后运行print()输出i为5

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值