Java运算符

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


一、运算符是什么?

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

二、运算符的分类

1.算术运算符  2.赋值运算符  3.比较运算符(关系运算符) 4.逻辑运算符

5.位运算符  6.三元运算符

三、运算符的使用

1.算术运算符:

 ①除运算(/):

class ProgrammingTest{
	public static void main(String[] rags){
	int num1 = 12;
	int num2 = 5;
	int result1 = num1 / num2;
	System.out.println(result1);//输出2
	double result4 = (double)(num1 / num2);//输出2.0
	
	
	
	double result2 = (num1 + 0.0)/num2;
	System.out.println(result2);//输出2.4,num1或num2加0.0皆可

	double result3 = (double)num1 / num2;
	System.out.println(result3);//输出2.4,num1或num2强制类型转换double皆可
	
	
	}
	
}

②取余或取模运算(%):

 结果的符号与被模数的符号相同:

class ProgrammingTest{
	public static void main(String[] rags){
	int m1 = 12;
	int n1 = 5;
	System.out.println("m1 % m1 = " + m1 % n1);//2
	
	int m2 = -12;
	int n2 = 5;
	System.out.println("m2 % n2 = " + m2 % n2);//-2
	
	int m3 = 12;
	int n3 = -5;
	System.out.println("m3 % n3 = " + m3 % n3);//2
	
	int m4 = -12;
	int n4 = -5;
	System.out.println("m4 % n4 = " + m4 % n4);//-2
	
	}
	
}

 ③(前)++:先自增1,后运算;(后)++:先运算,后自增1

(前)--:先自减1,后运算;(后)--:先运算,后自减1

自增1和自减1不会改变本身变量的数据类型

class ProgrammingTest{
    public static void main(String[] rags){
    int a = 5;
    int b = ++a;
    System.out.println("a = " + a + "b = " + b);//a = 6  b = 6
    /*byte b1 = 7;
    b1 = b1 + 1; 编译失败,需声明b1为int
    b1++; 编译通过*/

    int c = 8;
	int d = c++;
    System.out.println("c = " + c + "d = " + d);//c = 9  d = 8

}

2.赋值运算符: 

有=   +=    -=    *=    /=     %=

class SetValueTest{
    public static void main(String[] rags){
    //赋值符号:=
    int i1 = 10;
    int j1 = 10;

    int i2,j2;
    i2 = j2= 20;//连续赋值

    int i3 = 30,j3 = 30;
    //*********************************
    int num1 = 10;
    num1 += 2;//num1 = num1 + 2;
    System.out.println(num1);//输出12

    int num2 = 17;
    num2 %= 5;//num2 = num2 % 5;
    System.out.println(num2);//输出为2

    short s1 = 10;
    s1 = s1 + 1;//编译失败
    s1 += 1;//不会改变变量本身的数据类型
    
    }

}

3.比较运算符:

 比较运算符的结果都是boolean型,只能是true或false

>  <  >=  <=只能在数值的数据类型之间

"="不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间

class CompareTest{
	public static void main(String[] rags){
	int i = 10;
	int j = 20;
	System.out.println(i == j);//false
	System.out.println(i = j);//20
	
	boolean b1 = true;
	boolean b2 = false;
	System.out.println(b2 == b1);//false
	System.out.println(b2 = b1);//true
		
	}
	
}

 4.逻辑运算符:

&-逻辑与   &&--短路与 、  |--逻辑或   ||--短路或  、 !--逻辑非   ^--逻辑异或

逻辑运算符操作的都是boolean类型的变量

①逻辑与(&)与短路与(&&):

相同点:1.  &与&&的运算结果相同     2.当符号左边是true时,都会执行右边的运算

不同点:当符号左边是false时,&继续执行右边的运算,&&不再执行右边的运算

开发中,推荐使用&&

class LogicTest{
	public static void main(String[] rags){
	/*boolean b1 = true;
	int num1 = 10;
	if(b1 & (num1++ > 0)){
		System.out.println("我现在在深圳");
	}else{
		System.out.println("我现在在广州");
	}
		System.out.println("num1 = " + num1);
		
		
	boolean b2 = true;
	int num2 = 10;
	if(b2 && (num2++ > 0)){
		System.out.println("我现在在深圳");
	}else{
		System.out.println("我现在在广州");
	}
		System.out.println("num2 = " + num2);
		结果输出为:我现在在深圳
                    num1 = 11
			        我现在在深圳
                    num1 = 11*/
	boolean b1 = false;
	int num1 = 10;
	if(b1 & (num1++ > 0)){
		System.out.println("我现在在深圳");
	}else{
		System.out.println("我现在在广州");
	}
		System.out.println("num1 = " + num1);
		
		
	boolean b2 = false;
	int num2 = 10;
	if(b2 && (num2++ > 0)){
		System.out.println("我现在在深圳");
	}else{
		System.out.println("我现在在广州");
	}
		System.out.println("num2 = " + num2);		   
	    //结果输出为:我现在在广州
                   // num1 = 11
			       // 我现在在广州
                    //num1 = 10
	}
	
}

② 逻辑或(|)和短路或(||):

相同点:1. |  与  ||   的运算结果相同     2. 当符号左边是false时,二者都会执行符号右边的运算

不同点:当符号左边是true时, |  会执行符号右边的运算,  ||   不再执行符号右边的运算

开发中推荐使用  ||

class LogicTest{
   public static void main(String[] args){
     /*boolean b1 = false;
	   int num1 = 10;
	   if(b1 | (num1++ > 0)){
		 System.out.println("我现在在深圳");
	   }else{
	  	 System.out.println("我现在在广州");
	   }
	     System.out.println("num1 = " + num1);
	   boolean b2 = false;
	   int num2 = 10;
	   if(b2 || (num2++ > 0)){
		 System.out.println("我现在在深圳");
	   }else{
		  System.out.println("我现在在广州");
	   }
		System.out.println("num2 = " + num2);*/
		//输出:我现在在深圳
			  //num1 = 11
			  //我现在在深圳
			   //num2 = 11

 
    boolean b1 = true;
	int num1 = 10;
	if(b1 | (num1++ > 0)){
		System.out.println("我现在在深圳");
	 }else{
		System.out.println("我现在在广州");
	 }
	   System.out.println("num1 = " + num1);
	 boolean b2 = true;
	int num2 = 10;
	if(b2 || (num2++ > 0)){
		System.out.println("我现在在深圳");
	 }else{
		System.out.println("我现在在广州");
	 }
		System.out.println("num2 = " + num2);
        /*输出:我现在在深圳
                num1 = 11
                我现在在深圳
                num2 = 10*/

    }
}

5.位运算符

 <<  : 左移运算符    >>  : 右移运算符    >>>  :无符号右移(被移位二进制最高位无论是0或者是1,空缺位都用0补)    & :与运算    |:或运算    ^  :  异或运算      ~  :取反运算 

结论:

1.位运算符操作的都是整形的数据

2.  << : 在一定范围内,每向左移一位,相当于 *2

>> :在一定范围内,每向右移一位,相当于 / 2

class BitTest{
	public static void main(String[] rags){
	int i1 = 22;
	System.out.println("i1 << 2 = " + (i1 << 2));//88
	System.out.println("i1 >> 1 = " + (i1 >> 1));//11
	}
	
}

 6.三元运算符:

结构:(条件表达式)?表达式1  :   :表达式2

说明:①条件表达式的结果为boolean类型;

②根据条件表达式的真假,决定表达式1还是表达式2。如果表达式结果为true,则执行表达式1,如果表达式结果为false,则执行表达式2;

③表达式1和表达式2要求是一致的;

④三元运算符是可以嵌套的。

class SanYuanTest{
	public static void main(String[] rags){
	int num1,num2;
	num1 = 10;
	num2 = 12;
	//int max = (num1 > num2)? num1 : num2;
	//System.out.println("最大的数为 = " + max);
	
	//存在相等大小的情况
	/*num2 = 10;
	String maxStr = (num1 > num2)? "num1大" : ((num1 == num2)? "num1和num2相等" : "num2大");
	System.out.println(maxStr);输出为num1和num2相等*/
	
	int num3 = -10;
	int max1 = (num1 > num2)? num1 : num2;
	int max2 = (max1 > num3)? max1 : num3;
	System.out.println("三个数之间最大的是:" + max2);
	}
}

总结

这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了每个运算符的使用。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值