Java基础(五)---- 运算符


首先了解一下相关概念
运算符: 进行特定操作的符号,例如“+”
表达式: 用运算符连起来的式子叫做表达式

一、算术运算符

1.分类

符号含义
+加法运算,字符串连接运算
-减法运算
*乘法运算
/除法运算
%取模运算(两数相除取余数)
++、- -自增,自减运算

2.代码练习

public class Operator01 {

	public static void main(String[] args) {
		//先加减再打印
		System.out.println(20+30);//结果为50
		//两个变量的运算
		int a = 10,b = 5;
		System.out.println(a-b);//结果为5
		//强制类型转换
		double c = 10.00000000001;
		int d = (int)c;
		System.out.println(d);//结果为10
		//除法运算
		int e = 56,f = 7;
		int g = e/f,h = e%f;
		//System.out.println(e/f);//结果为8
		//System.out.println(e%f);//结果为0
		System.out.println(g+"......"+h);//结果为8......0
		//一旦运算中有不同的数据类型,则按数据类型更大的那种进行计算
		int j = 10;
		double i = j * 2.013;
		System.out.println(i);//结果为20.13
	}

}

3.“+”常用的三种方法

  1. 对于数值就是加法
  2. 对于字符char来说在计算之前会被提升为int,然后再计算(char本身为数字
  3. 对于字符串String 来说,“+”代表字符串的连接操作

4.自增,自减运算

  1. 自增运算符:++

  2. 自减运算符:- -

  3. 含义:让一个数字加一或者减一

  4. 格式:写在变量名之前,例如++a,- -a;写在变量名之后,例如a++,a- -

  5. 使用方式
    (1)单独使用:不混和于其他步骤,使自己成为一个独立的步骤
    (2)混合使用:和其他操作混合,例如与赋值混合,或者与打印混合等

  6. 使用区别
    (1)单独使用时:前++和后++没有任何区别 (都会加一)
    (2)混合使用时:前++先自增再使用;后++先使用后自增

  7. 自增,自减运算符使用练习

public class Operator02{

   	public static void main(String[] args) {
   		//1.单独使用
   		int n1 = 10;
   		System.out.println(n1);//结果为10
   		++n1;//先自增
   		System.out.println(n1);//结果11
   		n1++;//后自增
   		System.out.println(n1);//结果为12
   		//可以看出不论++在前还是在后,运行结果都是+1
   		System.out.println("==========分割线============");
   		
   		//2.与打印混合使用
   		int n2 = 20;
   		System.out.println(++n2);//结果为21,变量n2已经加一
   		System.out.println(n2);//结果为21,变量现在的值是21
   		System.out.println(n2++);//结果为21,经过后自增变量现在的值已经变成了22
   		System.out.println(n2);//再次打印结果为22
   		System.out.println("==========分割线============");
   		
   		//3.和赋值混合使用
   		int n3 = 30;
   		int n4 = --n3;
   		System.out.println(n4);//结果为29,这是混合使用,前- - ,
   							   //变量n3立马减一,变成了29,然后将结果赋值给n4
   		n3 = 30;//再次给n3赋值为30
   		n4 = n3--;
   		System.out.println(n4);//结果为30,后自减,所以在赋值时还没有减一,赋值完成后再减一
   		System.out.println(n3);//结果为29
   	}
   	
}

【tips】
1.只有整数取模运算才有意义
2. 一旦运算中有不同的数据类型,则按数据类型更大的那种类型进行计算
3. 只有变量才可使用自增自减

二、赋值运算符

1.含义

将符号右侧的值赋值给左侧

符号名称
=等于号
+=加等号
-=减等号
*=乘等号
/=除等号
%=取模等号

2.基本赋值运算符

1.就是一个等号“=”,代表将右侧的值交给左边的变量,例如:

	int a = 30;

3.复合赋值运算符

1.符号

符号表达式表达式的含义
+=a += 1相当于a = a + 1
-=b -= 2相当于b = b - 2
*=c *= 3相当于c = c * 3
/=d /= 4相当于d = d / 4
%=e %= 5相当于e = e % 5

2.代码练习

public class Operator03{

	public static void main(String[] agrs){
		int a = 1;
		a += 5;
		//按照公式进行翻译a += 5 → a = a + 5;
		//a = 1 + 5 = 6
		System.out.println(a);//结果为6
		System.out.println("==========分割线============");
		
		int b = 7;
		x %= 3;
		//按照公式进行翻译b %= 3 → b = b % 3;
		//b = 7 % 3 = 1	
		System.out.println(b);//结果为1
	}
	
}

3.注意事项
(1)只有变量才能使用赋值运算符,常量不能赋值
(2)复合赋值运算符其中隐含了一个强制类型转换

三、比较运算符

1.含义

两个数据之间进行比较的运算,不能连续比较,运算结果都是布尔值true或者false

2.符号

符号含义
==比较符号两边数据是否相等,相等结果是true。
<比较符号左边的数据是否小于右边的数据,如果小于结果是true。
>比较符号左边的数据是否大于右边的数据,如果大于结果是true,
<=比较符号左边的数据是否小于或者等于右边的数据,如果小于结果是true。
>=比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是true。
!=不等于符号,如果符号两边的数据不相等,结果是true.

3.代码练习

public class Operator04 {

	public static void main(String[] args) {
		char a = '我',b = '他';
		System.out.println(a+0);//结果为25105,首先我们将字符所代表的的数字打印出来
		System.out.println(b+0);//结果为20182
		//使用比较运算符进行比较
		System.out.println(a==b);//结果为false
		System.out.println(a>b);//结果为true
		System.out.println(a<b);//结果为false
		System.out.println(a>=b);//结果为true
		System.out.println(a<=b);//结果为false
		System.out.println(a!=b);//结果为true
	}

}

四、逻辑运算符

1.含义

直接比较两个布尔值

2.符号

符号逻辑功能
&&(短路与)有false则false,若&&左边表达式或者值为false,则右边不进行计算
II(短路或)有true则true,若II左边表达式或者值为true,则右边不进行计算
!(非)非false则true,非true则false
&(并且)有false则false
I(或者)有true则true
^(异或)相同为false,不同为true

3.代码练习

public class Logic {

	public static void main(String[] args) {
		System.out.println(true && false);//false
		// true && true --> true
		System.out.println(3 < 4 && 10 > 5);//true
		System.out.println("===============");
		
		System.out.println(true || false);//true 
		System.out.println(true || true);//true 
		System.out.println(false || false);//false 
		System.out.println("==============");
		
		System.out.println(true);//true
		System.out.println(!true);//false
	}
		
}

【tips】

  1. 逻辑运算符只能用于boolean值
  2. “&&”、“||”左右都需要有一个boolean值,“!”只要有唯一一个boolean值即可
  3. 与,或两种逻辑运算符,如果有多个条件,可以连续写
    两个条件:条件A && 条件B
    多个条件:条件A && 条件B && 条件C
  4. 与“&&”,或“||”,具有短路效果,如果左边已经可以判断得到最终结果,那么右边将不再执行,从而节省一部分性能,例如:
int a = 10;
System.out.println(3 > 4 && ++a < 100);//false
//false && ...
System.out.println(a);//10
System.out.println("==============");

int b = 20;
System.out.println(2 < 2 || ++b < 100);//true
//true || ...

五、三元运算符

1.定义

  • 一元运算符:需要一个数据才就可以进行操作的运算符,例如自增自减、取反
  • 二元运算符:需要两个数据才可以进行操作的运算符,例如加法、赋值3
  • 三元运算符:需要三个数据才可以进行操作的运算符

2.格式

数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;

3.流程

     1.首先判断是否成立
          如果成立为true,那么将表达式A的值赋值给左侧的变量
          如果不成立为false,那么将表达式B的值赋值给左侧的变量
     2.代码练习

	public class Operator05 {

		public static void main(String[] args){
				int a = 10;
				int b = 20;
				//数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
				int c = a > b ? a : b;
				System.out.println(c);//20
				System.out.println("===========================");
				
				//int d = 3 > 4 ? 2.5 : 10;//右侧数据类型与左侧不符
				int d = 5 > 4 ? 2 : 10;
				System.out.println(d);//2
				System.out.println("===========================");
				
				//结果必须使用
				System.out.println(a > b ? a : b);//正确写法
				//a > b ? a : b;                  //错误写法
			}
	}

【tips】

  1. 必须同时保证表达式A表达式B都符合左侧的数据类型要求
  2. 三元运算符的结果必须被使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值