运算符

算数运算符

  • 运算符和表达式
    运算符 :对 常量或者变量进行操作 的符号 。
    表达式 :用 运算符把常量或者变量连接起来符合 Java 语法的式子 称为表达式 。
  • 说明并举例
    int a = 10;
    int b = 20;
    int c = a + b;
    // + 是运算符,并且是算数运算符 。
    // a + b 是表达式,由于 + 是算数运算符,所以这个表达式叫算数表达式
  • 算数运算符

    符号作用说明
    +两个数之和
    -两个数之差
    *两个数之积
    /两个数之商
    %取余两个数之余
  • 代码测试

	public static void main(String[] args) {
		/**
		 * 算数运算符代码示范
		 **/
		
	 // 整型之间进行算数运算
	 //	整型之间进行除法运算时,运算的结果也是整型 。
		int a = 10;
		int b = 4;
		System.out.println(a+b);
		System.out.println(a-b);
		System.out.println(a*b);
		System.out.println(a/b);
		System.out.println(a%b);
		System.out.println("================");
     
	 // 整型与浮点型进行算数运算
	 //	整数与浮点型进行算数运算时,运算结果自动转换为占用空间大的浮点型,取余不推荐。
		int    c = 10;
		double d = 4.4;
		float  e = 4.4F;
		System.out.println(c+d);
		System.out.println(c-d);
		System.out.println(c*d);
		System.out.println(c/d);
		System.out.println(c%d);
		System.out.println("================");
		System.out.println(c+e);
		System.out.println(c-e);
		System.out.println(c*e);
		System.out.println(c/e);
		System.out.println(c%e);		
	}

字符 + 操作

  1. 拿字符在计算机底层对应的值来进行计算
  2. 算数表达式中包含多个基本数据类型的值的时候,整个算数表达式的类型会自动进行提升
  3. 提升规则 :
    byte , char ,short 将被提升为 int 类型 。
    整个表达式的类型自动提升到表达式中最高等级操作数同样的类型 。
    等级顺序 :byte , char ,short → int → long → float → double
  4. 代码测试 :
     /**
  	 * 字符 + 操作测试
  	 **/

  	// int,char 运算测试
  	int a = 10;
  	char b = 'A'; // A 的值为 65;
  	char c = 'a'; // a 的值为 97;
  	System.out.println(a + b);
  	System.out.println(a + c);
  	System.out.println("==================");

  	// byte,char,short 运算测试
  	byte d = 10;
  	char e = 'A';
  	short f = 20;
  	System.out.println(d + e);
  	System.out.println(d + f);
  	System.out.println(e + f);
  	System.out.println("==================");

  	byte aa = (byte) (d + e);
  	char bb = (char) (d + e);
  	System.out.println(aa);
  	System.out.println(bb);
  	System.out.println("==================");

  	// 提升规则:
  	char AA = 'A' + 10;
  	int BB = 'A' + 10;
  	System.out.println(AA);
  	System.out.println(BB);
  	System.out.println("==================");

  	// char CC = a + b;
  	int DD = a + b;
  	// int EE = 10+13.14;
  	double FF = 10 + 13.14;
  	System.out.println(DD);
  	System.out.println(FF);

字符串的 + 操作

  1. 当 + 操作中出现字符串时,这个 + 是字符串连接符,而不是算数运算 。
    521+“一生一世”
  2. 当 + 操作中,如果出现了字符串,就是连接符,否则就是算数运算 。当连续进行 + 操作时,从左到右逐个执行 。
    13+14+“测试”
  3. 代码测试 :
        /**
		 * 字符串 + 操作
		 **/

		// 字符串拼接
		System.out.println('我' + "爱你!");
		System.out.println("亲爱的" + "姑娘!");
		System.out.println(521 + "一生一世");
		System.out.println("一生一世" + 521);
		System.out.println("=======================");

		// 数值运算+字符串拼接
		System.out.println(13 + 14 + "测试");
		System.out.println("测试" + 13 + 14);
		System.out.println("测试" + (13 + 14));

赋值运算符

  • 赋值运算符

    符号作用说明
    =赋值a=10,将10赋值给变量a
    +=加后赋值a+=b,将a+b的值给a
    -=减后赋值a-=b,将a-b的值给a
    *=乘后赋值a*=b,将a*b的值给a
    /=除后赋值a/=b,将a/b的值给a
    %=取余后赋值a%=b,将a%b的值给a
  • 代码测试 :

        /**
		 * 赋值运算符
		 **/
		
		// 把 10 赋值给int类型的变量 a
		int a = 10;
		System.out.println("a=" + a);
		System.out.println("====================");

		// +=,把等式左边和右边的数据进行加法操作,结果赋值给等式左边( += 隐含强制类型转换 )
		short b = 20;
		b += 10;
		System.out.println("b=" + b);
		short c = 20;
		c = (short) (c + 10);
		System.out.println("c=" + c);
		System.out.println("====================");

		// -=,*=,/=,%=, 把等式左边和右边的数据拿出来进行 - * / % 的操作,结果赋值给等式左边
		short d = 20;
		d -= 5;
		System.out.println("d=" + d);
		short e = 20;
		e *= 5;
		System.out.println("e=" + e);
		short f = 20;
		f /= 5;
		System.out.println("f=" + f);
		short g = 20;
		g %= 3;
		System.out.println("g=" + g);

自增自减运算符

  • 自增自减运算符

    符号作用说明
    ++自增变量的值加1
    - -自减变量的值减1
  • 注意事项
    ++ 和 - - 既可以放在变量的后边,也可以放在变量的前面
    单独使用时,++ 和 - - 无论是放在变量的前面还是后边,结果是一样的
    参与操作时,++ 和 – 在前,先自增在赋值,++ 和 - - 在后,先赋值在自增

  • 代码测试 :

		/**
		 * ++ -- 操作 
		 **/
		
		// ++ , -- 单独使用, ++ 在前或者在后值相同	 
		int i = 10;
		i++;
		System.out.println(i);
		
		i=10;
		++i;
		System.out.println(i);
		
		i=10;
		i--;
		System.out.println(i);
		
		i=10;
		--i;
		System.out.println(i);
		System.out.println("======================");
		
		/**  
		 * 参与操作使用 
		 * ++ 在前,先自增在赋值 ;++ 在后,先赋值在自增 。
		 * -- 在前,先自减在赋值 ;-- 在后,先赋值在自减。
		 **/
		i=10;
		int j = ++i;
		System.out.println("i="+i);
		System.out.println("j="+j);
		System.out.println("======================");
		i=10;
		j= i++;
		System.out.println("i="+i);
		System.out.println("j="+j);
		System.out.println("======================");
		
		i=10;
		j = --i;
		System.out.println("i="+i);
		System.out.println("j="+j);
		System.out.println("======================");
		i=10;
		j = i--;
		System.out.println("i="+i);
		System.out.println("j="+j);
		System.out.println("======================");

关系运算符

  • 关系运算符

    符号说明
    ==a==b,判断a和b的值是否相等,成立为true,不成立为false
    !=a!=b,判断a和b的值是否不相等,成立为true,不成立为false
    >a>b,判断a是否大于b,成立为true,不成立为false
    >=a>=b,判断a是否大于等于b,成立为true,不成立为false
    <a<b,判断a是否小于b,成立为true,不成立为false
    <=a<=b,判断a是否小于等于b,成立为true,不成立为false
  • == 和 = 的区别 :
    == 是关系运算符,判断两个值是否相等
    = 是赋值运算符,将等式右边的值赋值给等式左边的变量

  • 代码测试 :

	    /**
		 *  关系运算符
		 **/
		
		int a = 10;
		int b = 20;
		int c = 10;
		
		// == 
		System.out.println(a==b);
		System.out.println(a==c);
		System.out.println("==========================");
		
		// !=
		System.out.println(a!=b);
		System.out.println(a!=c);
		System.out.println("==========================");
		
		// >
		System.out.println(a>b);
		System.out.println(a>c);
		System.out.println("==========================");
		
		// >=
		System.out.println(a>=b);
		System.out.println(a>=c);
		System.out.println("==========================");
		
		// <
		System.out.println(a<b);
		System.out.println(a<c);
		System.out.println("==========================");
		
		// <=
		System.out.println(a<=b);
		System.out.println(a<=c);
		System.out.println("==========================");

逻辑运算符

  • 逻辑运算符概叙

    在数学中,一个数据 x 大于3 小于6,我们可以这样来进行表示 :3<x<6
    在 Java 中,需要把上面的式子进行拆解,在进行合并表示 
    拆解为 :x>3 和 x<6
    合并后 :x>3 && x<6
    

    逻辑运算符,是用来连接关系表达式的运算符,也可以直接连接布尔类型的常量或者变量。

  • 逻辑运算符

    符号作用说明
    &逻辑与a&b,a 和 b 都是 true,结果为 true,否则为 false
    l逻辑或a l b,a 和 b 都死 false ,结果为 false,否则为 true
    ^逻辑异或a^b,a 和 b 结果不同为 true,相同为 false
    !逻辑非!a,结果和 a 的结果相反
  • 代码测试 :

	    /**
		 * 逻辑运算符
		 **/

		// 定义变量
		int a = 10;
		int b = 20;
		int c = 30;

		// & 逻辑与,有 false 则 false
		System.out.println((a > b) & (a > c)); // false & false
		System.out.println((a > b) & (a < c)); // false & true
		System.out.println((a < b) & (a > c)); // true & false
		System.out.println((a < b) & (a < c)); // true & true
		System.out.println("===========================");

		// | 逻辑或,有 true 则 true
		System.out.println((a > b) | (a > c)); // false | false
		System.out.println((a > b) | (a < c)); // false | true
		System.out.println((a < b) | (a > c)); // true | false
		System.out.println((a < b) | (a < c)); // true | true
		System.out.println("===========================");

		// ^ 逻辑异或,相同为 false,不同为 true
		System.out.println((a > b) ^ (a > c)); // false ^ false
		System.out.println((a > b) ^ (a < c)); // false ^ true
		System.out.println((a < b) ^ (a > c)); // true ^ false
		System.out.println((a < b) ^ (a < c)); // true ^ true
		System.out.println("===========================");

		// !逻辑非,结果相反
		System.out.println(a > b); // false
		System.out.println(!(a > b)); // ! false

短路逻辑运算符

  • 短路逻辑运算符

    符号作用说明
    &&短路与作用和&相同,具备短路效果
    ll短路或作用和 l 相同,具备短路效果
    &,无论左边真假,右边都要执行
    && ,左边为真,右边执行;左边为假,右边不执行
    | ,无论左边真假,右边都要执行
    || ,左边为假,右边执行;左边为真,右边不执行
    
  • 最常用的逻辑运算符

    && ,|| ,!
    
  • 代码测试 :

		/**
		 * 短路逻辑运算符
		 **/
		 
		// 定义变量
		int a = 10;
		int b = 20;
		int c = 30;

		// && 短路与, 有 false 则 false
		System.out.println((a > b) && (a > c)); // false && false
		System.out.println((a > b) && (a < c)); // false && true
		System.out.println((a < b) && (a > c)); // true && false
		System.out.println((a < b) && (a < c)); // true && true
		System.out.println("===========================");

		// || 短路或, 有 true 则 true
		System.out.println((a > b) || (a > c)); // false || false
		System.out.println((a > b) || (a < c)); // false || true
		System.out.println((a < b) || (a > c)); // true || false
		System.out.println((a < b) || (a < c)); // true || true
		System.out.println("===========================");

		// & , && 区别: & 不具备短路效果,&& 具备短路效果
		System.out.println((a++ > 30) & (b++ > 30)); // false & false , a 和 b 的值都 +1
		System.out.println("a:" + a);
		System.out.println("b:" + b);
		a = 10;
		b = 20;
		System.out.println((a++ > 30) && (b++ > 30)); // false && false , a 的值	 +1 , b 的值不变
		System.out.println("a:" + a);
		System.out.println("b:" + b);
		System.out.println("===========================");

		// | , || 区别: | 不具备短路效果,|| 具备短路效果
		a = 10;
		b = 20;
		System.out.println((a++ < 30) | (b++ < 30)); // true | true , a 和 b 的值都 +1
		System.out.println("a:" + a);
		System.out.println("b:" + b);
		a = 10;
		b = 20;
		System.out.println((a++ < 30) || (b++ < 30)); // true || true , a 的值 +1 , b 的值不变
		System.out.println("a:" + a);
		System.out.println("b:" + b);

三元运算符

  • 三元运算符

    格式 :关系表达式 ?表达式 1:表达式 2 ;
    范例 :a > b ? a : b ;
    计算规则 :首先计算关系表达式的值
    如果值为 true , 表达式 1 的值就是运算结果
    如果值为 false , 表达式 2 的值就是运算结果
    
  • 代码测试 :

	    /**
		 * 三元运算符
		 **/

		// 定义两个 int 类型的变量
		int a = 10;
		int b = 20;

		// 定义一个 int 类型的变量 max 来接收较大值
		int max = a > b ? a : b;
		// 输出较大值
		System.out.println("max :" + max);

		// 定义一个 int 类型的变量 little 来接收较小值
		int little = a < b ? a : b;
		// 输出较小值
		System.out.println("little :" + little);
  • 案例 :两只老虎
    需求:动物园里有两只老虎,已知两只老虎的体重分别为 180kg ,200kg 请用程序实现判断两只老虎的体重是否相同 。
	    /**
		 * 需求:动物园里有两只老虎,已知两只老虎的体重分别为 180kg , 200kg 请用程序实现判断两只老虎的体重是否相同 。
		 * 分析:定义两个变量用于保存老虎的体重,单位为千克,使用 int 类型保存数值。
		 **/

		// 定义两个 int 类型的变量存储老虎的体重
		int weight1 = 180;
		int weight2 = 200;
		
		// 判断 weight1 weight2 值是否相等,相等返回 true,不等返回 false
		boolean a = (weight1 == weight2) ? true : false;
		
        // 判断 a 的值是否等于 true ,等于输出体重相同,不等于输出体重不同
		System.out.println((a == true) ? "体重相同" : "体重不同 ");
  • 案例 :三个和尚
    需求 :一座寺庙里住着三个和尚,已知他们的身高分别是 150cm,210cm,165cm,请用程序实现获取这三个和尚的最高身高 。
		/**
		 * 需求:一座寺庙里住着三个和尚,已知他们的身高分别是 150cm,210cm,165cm,请用程序实现获取这三个和尚的最高身高
		 * 分析:定义三个变量用于保存和尚的身高,单位为cm,使用 int 类型保存数值。
		 **/

		// 定义三个 int 类型的变量存储和尚的身高
		int height1 = 150;
		int height2 = 210;
		int height3 = 165;

		// 判断 height1 > height2 是否成立,成立返回 height1,不成立返回 height2
		// 定义 int 类型的临时变量 height 进行存储
		int height = (height1 > height2) ? height1 : height2;
        
		// 判断 height > height3 是否成立,成立返回 height,不成立返回 height3
		// 输出结果进行字符串拼接
		System.out.println("最高身高为:"+ ((height > height3) ? height : height3) + "CM");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值