运算符

介绍:

  • 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
  1. 算术运算符
  2. 赋值运算符
  3. 关系运算符 [比较运算符]
  4. 逻辑运算符
  5. 位运算符 [需要二进制基础]
  6. 三元运算符

1.算术运算符

注意:

  1. *%的本质,可以看成一个公式 a % b = a - a/b b

  2. 当a%b是小数时,公式= a-(int)a/b*b

  3. 有小数参与运算时,得到的结果是一个近视值

    -10.5%3= -10.5-(-10)/3*3=-10.5+9=-1.5

public class ArithmeticOperator{

	public static void main(String[] args){
System.out.println(10.0/4);//2.0
double d = 10 / 4;//JAVA中 10/4 = 2,2->=2.0
System.out.println(d); //在%的本质,可以看成一个公式 a % b = a - a/b *b
//-10 % 3 => -10 - (-10) / 3 * 3 = -10 + 9 = -1
System.out.println(10 % 3); //1
System.out.println(-10 % 3); // -1
System.out.println(10 % -3); //1
System.out.println(-10 % -3); //-1
}
}

练习题:

题目:

定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度

public class ArithmeticOperatorExercise03{

	public static void main(String[] args){

		//1.需求:
//定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:
//5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
//2.思路分析
//(1)有一个变量保存摄氏温度 double sheshi,一个变量保存华氏温度 double huashi
// 要考虑java的特性
//(2)根据给出的公式 5/9*(华氏温度-100)
// (3) 将得到的结果保存到 double sheShi //3.走代码
double huaShi = 1234.6;
double sheShi = 5 / 9.0 * (huaShi - 100);
System.out.println("华氏温度:" + huaShi + "\n"+ "对应的摄氏温度:" + sheShi);
}
}

2.关系运算符(比较运算符)

3.逻辑运算符

介绍:用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean

  1. 短路与 && , 短路或 ||,取反 !
  2. 逻辑与 &,逻辑或 |,^ 逻辑异或

说明逻辑运算规则:

  1. a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false

    public class LogicOperator{
    
    	public static void main(String[] args){
    //&& 和 & 的案例
    int age = 50 ;
    //短路与
    if(age > 20 && age < 90){
    System.out.println("ok100");
    } //逻辑与&使用
    if(age > 20 & age < 90){
    System.out.println("ok200");
    } //区别
    int a = 4;
    int b = 9;
    //对于&&短路与而言,第一个条件为false,第二个条件不判断
    //对于&而言,第一个条件为false,第二个条件会判断
    if(a < 10 && ++b < 50){
    System.out.println("ok300");//输出,
    }
    System.out.println("a=" + a +" " + "b=" + b);// 4 10 if(a < 1 & ++b < 50){
    System.out.println("ok400");
    }
    System.out.println("a=" + a +" " + "b=" + b);//4 11
    }
    }
  2. a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false

  3. a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false 、

  4. a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false

  5. !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true

  6. a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 fal

注意:

  • 在开发中,基本用短路与 &&,效率高

3.1&& 和 & 使用区别

  1. &&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高
  2. & 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低

3.2|| 和 | 使用区别

  1. ||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高
  2. | 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低
  3. 开发中,我们基本使用 ||

3.3 取反 基本规则

! 非(取反) !条件 如果条件本身成立,结果为 false,否则为 true

public class InverseOperator {
//编写一个 main 方法
public static void main(String[] args) {
//! 操作是取反 T->F , F -> T
System.out.println(60 > 20); //T
System.out.println(!(60 > 20)); //F
//a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false
boolean b = (10 > 1) ^ ( 3 > 5);
System.out.println("b=" + b);//T
}
}

3.4逻辑异或

a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为


4.赋值运算符

介绍:赋值运算符就是将某个运算后的值,赋给指定的变量

4.1赋值运算符的分类

  1. 基本赋值运算符
  2. 复合赋值运算符
    • += ,-= ,*= , /= ,%= 等

4.2赋值运算符的特点

  1. 复合运算会进行强制类型的转换

    • b++也有一个类型的转换
  2. 运算顺序从右往左
  3. 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值 int num = 20; int num2= 78 * 34 - 10; int num3 = a

5.三元运算符

基本语法:

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

运算规则:

  1. 如果条件表达式为 true,运算后的结果是表达式 1;
  2. 如果条件表达式为 false,运算后的结果是表达式 2;
public class AssignOperator{
public static void main (String []args){
// byte b = 3;
// b += 2; // b = (byte)b + 2;
// System.out.println(b); int a = 10;
int b = 99;
int result = a < b ? a++:b--;//10,注意这里是后减减和后加加
System.out.println("result="+result);//10
System.out.println("a=" + a);//11
System.out.println("b=" + b);//99 }
}

5.1使用细节

  1. 表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)
  2. 三元运算符可以转成 if--else 语句

6.运算优先级

  1. 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
  2. 只有单目运算符(针对一个数进行操作的)、赋值运算符是从右向左运算的。
  3. 一览表, 不要背,使用多了,就熟悉了

优先级:

  1. (),{}等
  2. 单目运算 ++ --
  3. 算术运算符
  4. 位移运算符
  5. 比较运算符
  6. 逻辑运算符
  7. 三元运算符
  8. 赋值运算符

JAVA——运算符的更多相关文章

  1. Java笔记2-数据类型,变量,Java运算符

    我们编写软件,目的是为了高效的操作(增,删,改,查)数据. 数据类型 1.基本类型(8种)byte 字节型 -128~127short 短整型 -32768~32767int 整型 -21474836 ...

  2. Java运算符优先级(转)

    转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...

  3. 【转】Java运算符优先级

    原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...

  4. java运算符优先级与流程控制

    1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法   (修饰词)(返回值类型)(方法名)(参数列表){  ...

  5. Java基本语法-----java运算符的优先级与结合性

    这是本人以前的上学期间java 运算符这块知识的总结的,截图存到了word里,大家将就看下吧(不会用Markdown的表格 不然就在写一遍了 T T). [正在看本人博客的这位童鞋,我看你气度不凡,谈 ...

  6. Java 基本语法---Java运算符

    Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...

  7. [转]Java 运算符的优先级

    Java 运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 &l ...

  8. Java运算符使用总结(重点:自增自减、位运算和逻辑运算)

    Java运算符共包括这几种:算术运算符.比较运算符.位运算符.逻辑运算符.赋值运算符和其他运算符.(该图来自网络) 简单的运算符,就不过多介绍使用了,可自行测试.关于赋值运算,可以结合算术运算和位运算 ...

  9. Java 运算符及优先级

    运算符 分割符: , ; [] () 算数运算符: + - * / % ++ -- 关系运算符: > < >= <= == != 逻辑运算符: ! & | ^ & ...

  10. 【java基础】Java运算符优先级

    Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右   [ ] 方括号 从左到右   2 + 正号 从右到左 单目 - 负号 ...

随机推荐

  1. Loadrunner11录制移动端测试脚本(原文:http://blog.csdn.net/zhailihua/article/details/73610317)

    一.LR配置 1)LR设置代理,利用手机录制脚本 1-协议选择Web(HTTP/HTML)协议即可 2-录制开始前,对Recoding Options中的Port Mapping配置如下 a.新建Ne ...

  2. 一次SQL查询优化原理分析(900W+数据,从17s到300ms) (转)

    有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: ...

  3. Mysql8.0主从配置

    环境Centos7.6 ,mysql8.0 Mysql主从配置 1.1 配置环境: 本人在vm下做的实验,linux版本是centos的7.0版本,然后Mysql版本为此时较新的8.0.13版本.做最 ...

  4. linux修改root用户登陆密码

    如果不是以root用户登录的,请先切换到root用户下, 执行命令:su root 然后按提示输入root用户的密码. 英文系统: [root@localhost ~]# passwd Changin ...

  5. Ext原码学习之Ext-more.js

    // JavaScript Document Ext.apply(Ext,{ userAgent:navigator.userAgent.toLowerCase(), cache:{}, isSeed ...

  6. shell脚本三剑客之awk

    shell脚本之awk命令 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具 适合小型文本数据 1.工作原理 2.AWK格式 3.按行输入文本 4.按字段输入文本 5.通过管道符号,双引号调 ...

  7. STP的究极进化MSTP

    MSTP多生成树协议 1.MSTP概述 2.MSTP相关配置命令 1.MSTP是一个公有生成树协议,在实际生产环境中得到了广泛的应用. PVST是思科私有的,它能让多实例,多VLAN可以进行负载均衡, ...

  8. Azure AD Domain Service(二)为域服务中的机器配置 Azure File Share 磁盘共享

    一,引言 Azure File Share 是支持两种认证方式的! 1)Active Directory 2)Storage account key 记得上次分析的 "Azure File ...

  9. iOS模拟弱网

    iOS平台: 首先需要苹果手机开启开发者选项,方法是手机连接到MacOS上启动Xcode. 通过自带的开发者选项 >Network Link Conditioner, 即可简单的模拟各种速度的网 ...

  10. 10、架构--keepalive、四层负载均衡

    笔记 1.晨考 1.HTTPS的作用,怎么实现的呢? 2.全栈部署HTTPS 只需在代理中部署HTTPS 3.反向代理 BBS 步骤 1.部署WEB机器 2.部署代理 4.如果 LB01 宕机了,怎么 ...