Java运算符

1.运算符的分类

按照功能来分,运算符可以分为:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、条件运算符、Lambda运算符 (这里暂时不讲)

分类运算符
算术运算符+、-、*、/、%、++、--
赋值运算符=、+=、-=、*=、/=、%=、>>=、<<=、>>>=、<<<=、|=、^=等
比较运算符>、>=、<、<=、!=、==
逻辑运算符&、|、&&、||、^、!
位运算符&、|、^、~、<<、>>、>>>
条件运算符(条件表达式)?结果1:结果2
Lambda运算符后续进行讲解

2.基本运算符的使用

运算符运算范例结果
+正号+33
-负号b=4; -b-4
+5+510
-6-42
*3*412
/5/51
%取模(取余)7%52
++ 自增(前):先运算后取值a=2;b=++a;a=3;b=3
++自增(后):先取值后运算a=2;b=a++;a=3;b=2
- -自减(前):先运算后取值a=2;b=--a ;a=1;b=1
- -自减(后):先取值后运算a=2;b=a--;a=1;b=2
+字符串连接“He”+”llo”“Hello”

3.算术运算符的注意问题

        3.1如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。

        3.2对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:intx=3510;x=x/1000*1000; x的结果是?

        3.3“+”除字符串相加功能外,还能把非字符串转换成字符串.例如:

System.out.println(“6+6=”+6+6); //打印结果是?6+6=66 ?

        3.4练习1:算术运算符:自加、自减

public class SignTest{

    public static void main(String[] args){


        int i1 = 10;

        int i2 = 20;

        int i = i1++;

        System.out.print("i="+i);

        System.out.println("i1="+i1);

        i = ++i1;

        System.out.print("i="+i);

        System.out.println("i1="+i1);

        i = i2--;

        System.out.print("i="+i);

        System.out.println("i2="+i2);

        i = --i2;

        System.out.print("i="+i);

        System.out.println("i2="+i2);

    }
}
//输出:
		i= i1= 
		i= i1= 
		i= i2= 
		i= i2=

3.5练习2

随意给出一个整数,打印显示它的个位数,十位数,百位数的值。

格式如下:
    数字xxx的情况如下:
    个位数:
    十位数:
    百位数:
    例如:数字153的情况如下:
         个位数:3
         十位数:5
          百位数:1

        int num = 361;

        int ge = num % 10;
        int shi = (num / 10) % 10;
        int bai = (num / 100) % 10;

        System.out.println("数字" + num + "的情况如下:");
        System.out.println("个位数:" + ge);
        System.out.println("十位数:" + shi);
        System.out.println("百位数:" + bai);

4.比较运算符

运算符运算范例结果
==相等于4==3false
!=不等于4!=3true
<小于4<3false
>大于4>3true
<=小于等于4<=3false
>=大于等于4>=3true
instanceof检查是否是类的对象"hello" instanceof Stringtrue

比较运算符的结果都是boolean型,也就是要么是true,要么是false。

5.逻辑运算符

& —逻辑与

| —逻辑或

—逻辑非

&&  —短路与

|| —短路或

^ —逻辑异或

aba&ba&&ba|ba||b!aa^b
true truetruetruetruetruefalsefalse
true false falsefalsetruetruefalsetrue
false true falsefalsetruetruetruetrue
false false falsefalsefalsefalsetruefalse

 说明:该表是这样看的,以第二行举例,当a,b为true时,a&b、a&&b、a|b、a||b...这些运算符运算的结果

5.1 “&”和“&&”的区别:

单&时,左边无论真假,右边都进行运算;

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

5.2 “|”和“||”的区别:

“|”和“||”的区别同理, ||表示:当左边为真,右边不参与运算。

5.3 异或(^)的理解:

异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。理解:异或,追求的是“异”

5.4 练习:请写出每题的输出结果

5.4.1

int x = 1;

 int y=1;

 if(x++==2 & ++y==2){

	x =7;

 }

System.out.println("x="+x+",y="+y);

 5.4.2

int x = 1,y = 1;
	if(x++==2 && ++y==2){
		x =7;
	}
System.out.println("x="+x+",y="+y);

5.4.3

int x = 1,y = 1;
	if(x++==1 | ++y==1){
		x =7;
	}
System.out.println("x="+x+",y="+y);

5.4.4

 int x = 1,y = 1;
	if(x++==1 || ++y==1){
		x =7;
	}
System.out.println("x="+x+",y="+y);

5.5 面试题

class Test {
	public static void main (String [] args) {

		boolean x=true;
		boolean y=false;
		short z=42; 
		//if(y == true)
		if((z++==42)&&(y=true))z++;
		if((x=false) || (++z==45)) z++;
	System. out.println(“z=”+z);
	 }
 }

//结果为:z=46

6.位运算符

运算符运算范例
<<左移3 << 2 = 12 --> 322=12
>>右移3 >> 1 = 1 --> 3/2=1
>>>无符号右移3 >>> 1 = 1 --> 3/2=1
&与运算6 & 3 = 2
|或运算6 |3 = 7
^异或运算6 ^ 3 = 5
~取反运算~6 = -7

注意:没有"<<<"运算符

6.1位运算是直接对整数的二进制进行的运算

 位运算符的细节

<<空位补0,被移除的高位丢弃,空缺位补0。
>>被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。
>>>被移位二进制最高位无论是0或者是1,空缺位都用0补。
&二进制位进行&运算,只有1&1时结果是1,否则是0;
|二进制位进行|运算,只有0|0时结果时0,否则是1;
^相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0;不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
~正数取反,各二进制码按补码各位取反;负数取反。各二进制码按补码各位取反

 

 

 

 

 

7.三元运算符

 

7.1三元运算符与if-else的联系与区别:

1)三元运算符可简化if-else语句

2)三元运算符要求必须返回一个结果。

3)if后的代码块可有多个语句

7.2练习:获取两个数中的较大数

 

int a = 5,b=6;
int max = (a>b)?a:b;
System.out.println(max);

获取三个数中的较大数

int a = 5,b=6,c=10;
int max = (((a>b)?a:b)>c)?((a>b)?a:b):c;
System.out.println(max);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值