JAVA——运算符
运算符
介绍:
- 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
- 算术运算符
- 赋值运算符
- 关系运算符 [比较运算符]
- 逻辑运算符
- 位运算符 [需要二进制基础]
- 三元运算符
1.算术运算符
注意:
*%的本质,可以看成一个公式 a % b = a - a/b b
当a%b是小数时,公式= a-(int)a/b*b
有小数参与运算时,得到的结果是一个近视值
-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
- 短路与 && , 短路或 ||,取反 !
- 逻辑与 &,逻辑或 |,^ 逻辑异或
说明逻辑运算规则:
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
}
}
a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false
a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false 、
a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
!a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 fal
注意:
- 在开发中,基本用短路与 &&,效率高
3.1&& 和 & 使用区别
- &&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高
- & 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低
3.2|| 和 | 使用区别
- ||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高
- | 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低
- 开发中,我们基本使用 ||
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赋值运算符的分类
- 基本赋值运算符
- 复合赋值运算符
- += ,-= ,*= , /= ,%= 等
4.2赋值运算符的特点
- 复合运算会进行强制类型的转换
- b++也有一个类型的转换
- 运算顺序从右往左
- 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值 int num = 20; int num2= 78 * 34 - 10; int num3 = a
5.三元运算符
基本语法:
条件表达式 ? 表达式 1: 表达式 2;
运算规则:
- 如果条件表达式为 true,运算后的结果是表达式 1;
- 如果条件表达式为 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 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)
- 三元运算符可以转成 if--else 语句
6.运算优先级
- 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
- 只有单目运算符(针对一个数进行操作的)、赋值运算符是从右向左运算的。
- 一览表, 不要背,使用多了,就熟悉了
优先级:
- (),{}等
- 单目运算 ++ --
- 算术运算符
- 位移运算符
- 比较运算符
- 逻辑运算符
- 三元运算符
- 赋值运算符
JAVA——运算符的更多相关文章
- Java笔记2-数据类型,变量,Java运算符
我们编写软件,目的是为了高效的操作(增,删,改,查)数据. 数据类型 1.基本类型(8种)byte 字节型 -128~127short 短整型 -32768~32767int 整型 -21474836 ...
- Java运算符优先级(转)
转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...
- 【转】Java运算符优先级
原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...
- java运算符优先级与流程控制
1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法 (修饰词)(返回值类型)(方法名)(参数列表){ ...
- Java基本语法-----java运算符的优先级与结合性
这是本人以前的上学期间java 运算符这块知识的总结的,截图存到了word里,大家将就看下吧(不会用Markdown的表格 不然就在写一遍了 T T). [正在看本人博客的这位童鞋,我看你气度不凡,谈 ...
- Java 基本语法---Java运算符
Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...
- [转]Java 运算符的优先级
Java 运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 &l ...
- Java运算符使用总结(重点:自增自减、位运算和逻辑运算)
Java运算符共包括这几种:算术运算符.比较运算符.位运算符.逻辑运算符.赋值运算符和其他运算符.(该图来自网络) 简单的运算符,就不过多介绍使用了,可自行测试.关于赋值运算,可以结合算术运算和位运算 ...
- Java 运算符及优先级
运算符 分割符: , ; [] () 算数运算符: + - * / % ++ -- 关系运算符: > < >= <= == != 逻辑运算符: ! & | ^ & ...
- 【java基础】Java运算符优先级
Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右 [ ] 方括号 从左到右 2 + 正号 从右到左 单目 - 负号 ...
随机推荐
- 前缀函数与Z函数介绍
字符串算法果然玄学=_= 参考资料: OI Wiki:前缀函数与KMP算法 OI Wiki:Z函数(扩展KMP) 0. 约定 字符串的下标从 \(0\) 开始.\(|s|\) 表示字符串 \(s\) ...
- 从服务之间的调用来看 我们为什么需要Dapr
Dapr 相关的文章我已经写了20多篇了[1] . 当向其他人推荐Dapr 的时候,需要回答的一个问题就是: Dapr 似乎并不是特别令人印象深刻.它提供了一组"构建块",解决了与 ...
- SharePoint Online 为Modern Page添加脚本
前言 众所周知,如果我们想向SharePoint 页面添加脚本,最方便的便是经典页面,添加方式主要有内容编辑器Web部件或者直接使用SharePoint Designer. 但是,如果页面是Moder ...
- php 递归目录
转载请注明来源:https://www.cnblogs.com/hookjc/ $TheFilePath='';function file_list($path){ global $TheFilePa ...
- ittun.com的使用方法
[如果这篇文章对你有所作用,请加关注哦!] 步骤一: 进入官网http://ittun.com/ Windows 64位下载http://ittun.com/upload/17.2/ittun_win ...
- MySQL--数据表操作--行转列和列转行
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11782549.html MySQL--数据表操作: 会用到的查询操作. 1. Limit的用法 ...
- @Resource注解和@Autowired注解
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11770982.html 1. @Resource 类来源: javax(Java扩展包) 类全 ...
- Java和Js编码(encodeUrl)解码(decodeUrl)对空格的差异问题
今天解决一个问题的时候遇到了一个编码解码问题,记录一下. 1. Js用的是encodeURIComponent()方法编码,后面的都以该编码方式处理出来的数据为准. 2. Java用的是URLDeco ...
- DatabaseMetaData
getColumns public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern ...
- 程序员的情人节「GitHub 热点速览 v.22.07」
又是一年情人日,刚好还是发文的今天.也没什么好送的,送点程序员的浪漫--代码和开源项目吧.记得在本周特推查收这份来自程序员的独有浪漫. 本周 GitHub 霸榜的项目基本上都是老项目,从老项目中挖点新 ...