zoukankan      html  css  js  c++  java
  • 运算符

    一、算术运算符

    • +表示加法运算符

    • -表示减法运算符

    • *表示乘法运算符

    • /除法运算符

    • %表示取模/区域运算法

      int a = 12;
      		int b = 5;
      		//double c;
      		//进行加法运算
      		int c1 = a + b;//  a + b 这个整体叫做表达式;a,b叫做操作数,+叫做操作符/运算符
      		System.out.println("c1 = " + c1);
      		//进行减法运算
      		int c2 = a - b;
      		System.out.println("c2 = " + c2);
      		//进行乘法运算
      		int c3 = a * b;
      		System.out.println("c3 = " + c3);
      		//进行除法运算
      		double c4 = a / b;
      		System.out.println("c4 = " + c4);
      		int c6 = a / b;//当两个整数相除时结果只会保留整数部分,小数部分丢弃
      		System.out.println("c6 = " + c6);
      		System.out.println(5*1.0/2);
      		//进行取余运算
      		int c5 = a % b;
      		System.out.println("c5 = " + c5);
      

    注意事项:

    • 当两个整数相除时没结果保留整数部分,丢弃小数部分

    • 若希望保留小数部分:

      • 使用强制类型转换,将其中一个类型转换成double类型在运算即可。

      • 让其中一个操作数乘以1.0即可

        //进行除法运算
        		double c4 = a / b;
        		System.out.println("c4 = " + c4);
        		int c6 = a / b;//当两个整数相除时结果只会保留整数部分,小数部分丢弃
        		System.out.println("c6 = " + c6);
        		System.out.println(5*1.0/2)
        
    • 0不能作除数

    //0 不能作除数
    		System.out.println(5 / 0.0);//Infinity 无穷
    		System.out.println(0 / 0.0);//NaN:Not a number.
    		System.out.println(5 / 0);//编译没问题,但在运行时:Exception in thread "main" java.lang.ArithmeticException: / by zero at ArithmeticTest.main(ArithmeticTest.java:31)
    

    二、字符串连接符

    • +既可以实现字符串的链接,同时可以实现字符串与其他数据类型“相连。又可以作为加法运算符。
      • 判断:只要+两边的操作数中有一个是字符串类型,则改加好就被当做字符串连接符处理,否则当作加法运算符

    三、关系/比较运算符

    • ">"表示是否大于运算符 ">="表示是否大于等于运算符
    • "<"表示是否小于运算符 "<="表示是否小于等于运算符
    • "=="表示是否等于运算符 "!="表示是否不等于运算符
    • 所有以运算符作为最终运算的表达式结果一定是boolean类型
    int a = 5;
    		int b = 4;
    		
    		//使用变量实现关系运算符的使用并打印结果
    		boolean b1 = a > b;
    		System.out.println("b1 = " + b1);//a大于b true
    		boolean b2 = a >= b;
    		System.out.println("b2 = " + b2);//a大于等于b true
    		boolean b3 = a < b;
    		System.out.println("b3 = " + b3);//a小于b false
    		boolean b4 = a <= b;
    		System.out.println("b4 = " + b4);//a小于等于b false
    		boolean b5 = a == b;
    		System.out.println("b5 = " + b5);//a等于b false
    		boolean b6 = a != b;
    		System.out.println("b6 = " + b6);//a不等于b true
    

    四、自增减运算符

    • ++表示自增运算符,用于使得当前变量自身的数值加1的效果
    • --表示自减运算符,用于使得当前变量自身的数值减一的效果
    int a = 3;
    		int b = 3;
    		System.out.println("a = " + a + "; b = " + b);//a = 3; b = 3
    		
    		//使用自增运算符
    		a++;
    		++b;
    		System.out.println("a = " + a + "; b = " + b);//a = 4; b = 4
    		
    		//使用自减运算符
    		a--;
    		--b;
    		System.out.println("a = " + a + "; b = " + b);//a = 3; b = 3
    

    前后++的区别:

    后++(i++):先让i的数值作为整个表达式的最终结果,然后再让i变量自身的数值加1;

    前++(++i):先让i变量自身的数值加1,然后变量的值作为整个表达式的结果

    //使用自增运算符
    		//后++(i++):先让i的数值作为整个表达式的最终结果,然后再让i变量自身的数值加1;
    		System.out.println(a++);//输出:3
    		System.out.println("a =" + a);//输出:4
    		//前++(++i):先让i变量自身的数值加1,然后变量的值作为整个表达式的结果
    		System.out.println(++a);//输出:5
    		System.out.println("a =" + a);//输出:5
    

    笔试考点:

    //笔试考点:
    		int ia = 3;
    		int ib = ia++;
    		System.out.println("ib = " + ib);//ib = 3;
    		System.out.println("ia = " + ia);//ia = 4;
    		int ic = ++ia;
    		System.out.println("ic = " + ic);//ic = 5;
    		System.out.println("ia = " + ia);//ia = 5;
    		
    		System.out.println(ia++ + ++ia);//输出:12
    		System.out.println("ia = " + ia);//ia = 7;
    		
    		System.out.println(ia++ + 3);//输出:10
    		System.out.println("ia = " + ia);//ia = 8;
    

    五、逻辑运算符

    1、逻辑运算符的概念和使用

    • &&表示逻辑与运算符,相当于“并且”,同真为真,一假为假。
    • ||表示逻辑或运算符,相当于“或者”,一真为真,同假为假。
    • !表示逻辑非运算符,相当于“取反”,真为假,假为真。
    • 逻辑运算符的操作数均为boolean表达式。
    public class LogicTest {
    	
    	public static void main(String [] args) {
    		
    		//声明两个boolean类型的变量并初始化
    		boolean b1 = true;
    		boolean b2 = false;
    		System.out.println("b1 = " + b1);
    		System.out.println("b2 = " + b2);
    		
    		System.out.println("----------------------");
    		boolean b3 = b1 && b2;
    		System.out.println("b3 = " + b3);//false
    		System.out.println(b1 || b2);//true
    		System.out.println(!b1);//false
    		System.out.println(!b2);//true
    	}
    }
    

    2、逻辑运算符的短路特性

    • 对于逻辑与运算符,若第一个表达式为假,则结果为假,此时跳过第二个表达式;

      //测试短路特性
      		int ia = 3;
      		int ib = 5;
      		//对于逻辑与运算符,若第一个表达式为假,则结果为假,此时跳过第二个表达式;
      		boolean b4 = (++ia == 3) && (++ib == 5);
      		System.out.println("b4 = " + b4);//b4 = false;
      		System.out.println("ia = " + ia);//ia = 4;
      		System.out.println("ib = " + ib);//ib = 5;
      
    • 对于逻辑或运算符,若第一个表达式为真则结果为真,此时跳过第二个表达式。

      //对于逻辑或运算符,若第一个表达式为真则结果为真,此时跳过第二个表达式。
      		boolean b5 = (++ia == 5) || (++ib == 5);
      		System.out.println("b5 = " + b5);//b5 = true;
      		System.out.println("ia = " + ia);//ia = 5;
      		System.out.println("ib = " + ib);//ib = 5;
      

    3、三目运算符的概念和使用

    • 条件/三目运算符:

      条件表达式?表达式1:表达式2;

    • 判断条件表达式是否成立,若成立执行表达式1,否则执行表达式2。

    //使用三目运算符判断是否为三位数
    		String b2 = (num > 99 && num < 1000) ? "是三位数" : "不是三位数";
    		System.out.println(num + ":" + b2);//99:不是三位数;100:是三位数;1000:不是三位数;
    
    /*
    	案例:提示用户输入两个整数,使用三目运算符找到最大值并打印出来。
    */
    
    import java.util.Scanner;
    
    public class MaxTest {
    	
    	public static void main(String [] args) {
    		
    		Scanner sc = new Scanner(System.in);
    		
    		//输入两个整数
    		System.out.println("请输入两个整数:");
    		int ia = sc.nextInt();
    		int ib = sc.nextInt();
    		
    		//使用三目运算符找出两个整数中的最大值
    		int max = ia > ib ? ia : ib;
    		System.out.println("max = " + max);
    	}
    }
    

    4、赋值运算符的概念和使用

    • 赋值运算符:

      = 表示赋值运算符,用于将=右边的数据赋值为=左边的变量,覆盖变量原来的数值。

    • 赋值表达式本身也有值,其本身之值即为所赋之值。

    • +=、-=、*=、/=、....

    笔试考点:

    //笔试考点1:
    		byte b1 = 10;
    		System.out.println("b1 = " + b1);
    		//b1  = b1 + 2;//错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + int 结果是int类型
    		//b1  = b1 + (byte)2;//错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + byte 结果还是int类型
    		b1  = (byte)(b1 + 2);
    		System.out.println("b1 = " + b1);//b1 = 12;
    		b1 += 2;//+= 隐含强制转换,等价于b1  = (byte)(b1 + 2);
    		System.out.println("b1 = " + b1);//b1 = 14;
    
    //笔试考点2:
    		//ia == 2;-表示判断变量ia的数值是否等于2;
    		//2 == ia;- 表示判断2是否等于ia的数值,从结果上来说等价,推荐该方式
    		//ia = 2; - 表示将2赋值给变量ia,覆盖ia原来的数值
    		//2 = ia; - 编译报错  错误:意外的类型
    

    六、移位运算符

    1、概念

    • << 左移运算符,用于将数据的二进制位向左移动,右边使用0补充
    • 右移运算符 >>,用于将数据的二进制位向右移动,左边使用符号位补充。
    • 逻辑右移运算符 >>>,用于将数据的二进制位向右移动,左边使用0补充。

    2、移位运算符的使用

    /*
    	编程实现移位运算符的使用
    */
    
    public class MoveBitTest {
    	
    	public static void main(String [] args) {
    		
    		//声明一个byte类型的变量并初始化
    		byte b1 = 13;
    		//打印变量的值
    		System.out.println("b1 = " + b1);
    		
    		System.out.println("----------------");
    		//移位运算符的使用
    		//13的二进制是:0000 1101 => 左移一位的结果是:0001 1010 =>换算为十进制为:26
    		//byte b2 = b1 << 1;//错误: 不兼容的类型: 从int转换到byte可能会有损失
    		byte b2 = (byte)(b1 << 1);
    		System.out.println("b2 = " + b2);//b2 = 26;左移一位相当于当前整数的数值*2
    		System.out.println(b1 << 2);//输出:26;左移2位相当于当前整数的数值*4
    		
    		System.out.println("----------------");
    		System.out.println(b1 >> 1);//输出:6;左移1位相当于当前整数的数值/2
    		System.out.println(b1 >> 2);//输出:3;左移2位相当于当前整数的数值/4
    		
    		System.out.println("----------------");
    		//逻辑右移  对于非负数而言,逻辑右移和右移的效果是一致的
    		System.out.println(b1 >>> 2);//输出:3;左移2位相当于当前整数的数值/4
    	}
    }
    

    七、位运算符

    1、概念

    • &表示按位与运算符,按照二进制位进行与运算,同1为1,一0为0.
    • |表示按位或运算符,按照二进制位进行或运算,一1位1,同0位0.
    • ~表示按位取反运算符,按照二进制位进行取反,1为0,0为1.
    • ^表示按位异或运算符,按照二进制位进行异或运算,同为0,不同为1.

    2、位运算符的使用

    /*
    	编程实现位运算符的使用
    */
    
    public class BitTest {
    	
    	public static void main(String [] args) {
    		
    		//声明两个byte类型的变量并初始化
    		byte b1 = 11;
    		byte b2 = 13;
    		//打印变量的数值
    		System.out.println("b1 = " + b1);
    		System.out.println("b2 = " + b2);
    		
    		System.out.println("-------------------");
    		//实现为运算符的使用
    		//b1的二进制:0000 1011  
    		//b2的二进制:0000 1101
    		System.out.println(b1 & b2);//同1为1,一0为0;按位与后的二进制:0000 1001 => 转为十进制:9
    		System.out.println(b1 | b2);//一1为1,同0位0;按位或后的二进制:0000 1111 => 转为十进制:15
    		System.out.println(b1 ^ b2);//相同为0,不同为1; 按位异或后的二进制:0000 0110 => 转为十进制:6
    		System.out.println(~ b1);//1为0,0为1,;按位取反后的二进制:1111 0100 => 转为二进制:-12
    	}
    }
    

    八、运算符的优先级

    ![02运算符的优先级](D:Lagou课程资料模块一Java编程基础模块一 Java编程基础3任务三 运算符2_图片2运算符的优先级.png)

    • ()的优先级极高。
    • =的优先级极低。
    • 若无法确认优先级,则使用()来确保即可

    文章内容输出来源:拉勾教育Java高新训练营

    本文来自博客园,作者:寒露凝珠,转载请注明原文链接:https://www.cnblogs.com/china-soldier/p/14821153.html

  • 相关阅读:
    java OA系统 自定义表单 流程审批 电子印章 手写文字识别 电子签名 即时通讯
    flowable 获取当前任务流程图片的输入流
    最新 接口api插件 Swagger3 更新配置详解
    springboot 集成 activiti 流程引擎
    java 在线考试系统源码 springboot 在线教育 视频直播功能 支持手机端
    阿里 Nacos 注册中心 配置启动说明
    springboot 集成外部tomcat war包部署方式
    java 监听 redis 过期事件
    springcloudalibaba 组件版本关系
    java WebSocket 即时通讯配置使用说明
  • 原文地址:https://www.cnblogs.com/china-soldier/p/14821153.html
Copyright © 2011-2022 走看看