个人怎么创建网站,开发工具控件属性怎么打开,中国正规现货交易平台,wordpress迁移数据文章目录 1.运算符和表达式运算符#xff1a;表达式#xff1a; 2.算术运算符练习#xff1a;数值拆分 3.隐式转换概念#xff1a;简单记忆#xff1a;两种提升规则#xff1a;取值范围从小到大的关系#xff1a; 4.隐式转换的练习案例一#xff1a;案例二#xff1a;… 文章目录 1.运算符和表达式运算符表达式 2.算术运算符练习数值拆分 3.隐式转换概念简单记忆两种提升规则取值范围从小到大的关系 4.隐式转换的练习案例一案例二案例三案例四案例五案例六 5.强制转换概念书写格式 6.字符串的操作核心技巧 7.字符串相加的练习8.字符的操作规则案例 9.算术运算符的总结10.自增自减运算符分类使用方式注意点案例自增自减运算符的应用场景 11.赋值运算符12.扩展赋值运算符分类运算规则案例注意点 13.关系运算符分类注意点 14.逻辑运算符 和 | 的使用使用场景^异或的使用!取反的使用 15.短路逻辑运算符||逻辑核心举例总结建议 16.三元运算符格式计算规则注意点案例 17.练习1-两只老虎18.练习2-求三个数的最大值19.运算符的优先级 1.运算符和表达式
运算符
就是对常量或者变量进行操作的符号。
比如 - * /
表达式
用运算符把常量或者变量连接起来的符合Java语法的式子就是表达式。
比如a b 这个整体就是表达式。
而其中是算术运算符的一种所以这个表达式也称之为算术表达式。
2.算术运算符
分类 - * / %运算特点 - * :跟小学数学中一模一样没有任何区别./
1.整数相除结果只能得到整除如果结果想要是小数必须要有小数参数。
2.小数直接参与运算得到的结果有可能是不精确的。
案例
System.out.println( 10 / 3);//3
System.out.println(10.0 / 3);//3.3333333333333335%取模、取余。他做的也是除法运算只不过获取的是余数而已。
案例
System.out.println(10 % 2);//0
System.out.println(10 % 3);//1
应用场景
//可以利用取模来判断一个数是奇数还是偶数
System.out.println(15 % 2);//1 奇数练习数值拆分
需求键盘录入一个三位数将其拆分为个位、十位、百位后打印在控制台
代码示例
//1.键盘录入一个三位数
//导包 --- 创建对象 --- 接收数据
Scanner sc new Scanner(System.in);
System.out.println(请输入一个三位数);
int number sc.nextInt();//123//2.获取这个三位数的个位、十位、百位并打印出来
//公式
//针对于任意的一个数而言
//个位 数字 % 10
int ones number % 10;
//十位 数字 / 10 % 10
int tens number / 10 % 10;
//百位 数字 / 100 % 10
int hundreds number / 100 % 10;//输出结果
System.out.println(ones);
System.out.println(tens);
System.out.println(hundreds);公式
获取任意一个数上每一位数。
个位数字 % 10
十位数字 / 10 % 10
百位数字 / 100 % 10
千位数字 / 1000 % 10
。。。以此类推。。。
3.隐式转换
概念
也叫自动类型提升。
就是把一个取值范围小的数据或者变量赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现是程序自动帮我们完成的。
简单记忆
就是小的给大的可以直接给。
两种提升规则
取值范围小的和取值范围大的进行运算小的会先提升为大的再进行运算。byte、short、char三种类型的数据在运算的时候都会直接先提升为int然后再进行运算。
取值范围从小到大的关系
byte short int long float double
4.隐式转换的练习
请看下面案例是否有误如果有问题请说出原因如果没有问题请说出运算过程和运算结果
案例一
double d 10;
System.out.println(d);//10.0解释
10是整数整数默认是int类型的。
而在取值范围的顺序中byte short int long float double
在赋值的时候把一个int类型的赋值给了一个double类型的。把一个小的赋值给一个大的是可以直接给的。
案例二
byte b 100;
int i b;//可以成功赋值解释
因为byte的取值范围是小的int的取值范围是大的在底层进行了隐式转换不需要我们额外写代码单独实现是可以直接赋值。
案例三
int i 10;
long n 20L;
??? result i n;
问变量result是什么类型的解释
变量i是int类型的变量n是long类型的。
而在取值范围的顺序中byte short int long float double
变量i里面的值会自动提升为long类型的最终的结果其实就是两个long相加那么最终的result是long类型的。
案例四
int i 10;
long n 100L;
double d 20.0;
??? result i n d;
问变量result是什么类型的解释
变量i是int类型变量n是long类型变量d是double类型。
而在取值范围的顺序中byte short int long float double
所以变量i和变量n里面的值在参与运算的时候都会进行类型提升变成double。
最终其实就是三个double进行相加那么最终的结果就是double类型的。
案例五
byte b1 10;
byte b2 20;
??? result b1 b2;//int
问变量result是什么类型的解释
因为b1和b2都是byte类型的。所以在参与计算的时候变量b1和变量b2里面的值都会自动提升为int类型的。最终其实就是两个int类型的相加最终结果也是int类型的。
案例六
byte b 10;
short s 20;
long n 100L;
??? result b s n;
问变量result是什么类型的long解释
变量b是byte类型的变量s是short类型的变量n是long类型的。
byteshortchar类型的变量在参与运算的时候变量里面的值会直接先提升为int。
第一步变量b和变量s里面的值会先提升为int参与运算。
int int long
第二步而long类型的取值范围是大于int的取值范围的。
所以变量b和变量s里面的值会再次提升为long。
long long long。
所以最终结果是long类型的。
5.强制转换
概念
如果要把一个取值范围大的数据或者变量赋值给另一个取值范围小的变量。是不允许直接操作。
如果一定要这么干就需要加入强制转换。
书写格式
目标数据类型 变量名 目标数据类型被强转的数据
简单理解
要转成什么类型的那么就在小括号中写什么类型就可以了。
案例
public class OperatorDemo2 {public static void main(String[] args) {double a 12.3;int b (int) a;System.out.println(b);//12}
}注意点
强制转换有可能会导致数据发生错误。数据的精度丢失
6.字符串的操作
核心技巧
当操作中出现字符串时此时就是字符串的连接符会将前后的数据进行拼接并产生一个新的字符串。当连续进行操作时从左到右逐个执行的。
7.字符串相加的练习
案例1
1 abc 1结果“1abc1”
解释
第一步 1 “abc”。在这个过程中有字符串参与的所以做的是拼接操作产生一个新的字符串1abc
第二步 “1abc” 1。这个过程中有字符串参与的所以做的也是拼接操作产生一个新的字符串1abc1
案例2
1 2 abc 2 1结果“3abc21”
解释
第一步1 2 。在这个过程中没有字符串参与的所以做的是加法运算结果为3。
第二步3 “abc”。在这个过程中有字符串参与的所以做的是拼接操作产生一个新的字符串3abc。
第三步“3abc” 2。在这个过程中有字符串参与的所以做的是拼接操作产生一个新的字符串3abc2。
第四步“3abc2” 1。在这个过程中有字符串参与的所以做的是拼接操作产生一个新的字符串“3abc21”
案例3
String name 黑默丁格;
System.out.println(我的名字是 name);结果 我的名字是黑默丁格
解释当字符串跟变量相加的时候实际上是跟变量里面的值进行拼接。
8.字符的操作
规则
当操作中出现了字符会拿着字符到计算机内置的ASCII码表中去查对应的数字然后再进行计算。
案例
char c a;
int result c 0;
System.out.println(result);//97ASCII码表中
‘a’ ----- 97
‘A’ ----- 65
9.算术运算符的总结
分类 - * / % 这些操作跟小学数学几乎是一模一样的。注意点
/ 和 % 的区别他们两个都是做除法运算/取结果的商。% 取结果的余数。整数操作只能得到整数如果想要得到小数必须有浮点数参与运算。
算术运算符的高级用法
是以为例进行的讲解其余减法乘法除法的运算规则也是一样的。
特例字符串只有操作没有其他操作。
10.自增自减运算符
分类 自增运算符
-- 自减运算符就是把变量里面的值1
–就是把变量里面的值-1
使用方式
放在变量的前面我们叫做先。 比如a放在变量的后面我们叫做后。 比如a
注意点
不管是先还是后。单独写在一行的时候运算结果是一模一样的。
案例
//
int a 10;
a;//就是让变量a里面的值 1
System.out.println(a);//11
a;//就是让变量a里面的值 1
System.out.println(a);//12自增自减运算符的应用场景
某些情况下变量需要进行加1或者减1的时候使用。
比如过生日多一岁就用到了自增运算符。
比如购物商场中选择商品数量也用到了自增或者自减运算符。
比如统计很多数据中有多少个数据满足要求也用到了自增运算符。
11.赋值运算符
最为常用的
运算过程就是把等号右边的结果赋值给左边的变量
案例
public class OperatorDemo6 {public static void main(String[] args) {//1.最为简单的赋值运算符用法int a 10;//就是把10赋值给变量aSystem.out.println(a);//2.如果等号右边需要进行计算。int b 20;int c a b;//先计算等号右边的把计算的结果赋值给左边的变量System.out.println(c);//3.特殊的用法a a 10;//先计算等号右边的把计算的结果赋值给左边的变量System.out.println(a);//20}
}12.扩展赋值运算符
分类
、-、*、/、%
运算规则
就是把左边跟右边进行运算把最终的结果赋值给左边对右边没有任何影响。
案例
public class OperatorDemo7 {public static void main(String[] args) {//扩展赋值运算符int a 10;int b 20;a b;//把左边和右边相加再把最终的结果赋值给左边对右边没有任何影响// 相当于 a a b;System.out.println(a);//30System.out.println(b);//20}
}注意点
扩展的赋值运算符中隐层还包含了一个强制转换。
以为例。
a b ;实际上相当于 a (byte)(a b);
public class OperatorDemo8 {public static void main(String[] args) {byte a 10;byte b 20;//a b;a (byte)(a b);System.out.println(a);//30}
}13.关系运算符
又叫比较运算符其实就是拿着左边跟右边进行了判断而已。
分类
符号解释就是判断左边跟右边是否相等如果成立就是true如果不成立就是false!就是判断左边跟右边是否不相等如果成立就是true如果不成立就是false就是判断左边是否大于右边如果成立就是true如果不成立就是false就是判断左边是否大于等于右边如果成立就是true如果不成立就是false就是判断左边是否小于右边如果成立就是true如果不成立就是false就是判断左边是否小于等于右边如果成立就是true如果不成立就是false
注意点
关系运算符最终的结果一定是布尔类型的。要么是true要么是false在写的时候千万不要写成
14.逻辑运算符 和 | 的使用
逻辑与而且
两边都为真结果才是真只要有一个为假那么结果就是假。
|逻辑或或者
两边都为假结果才是假只要有一个为真那么结果就是真。
代码示例
// //两边都是真结果才是真。
System.out.println(true true);//true
System.out.println(false false);//false
System.out.println(true false);//false
System.out.println(false true);//falseSystem.out.println();// | 或 //两边都是假结果才是假如果有一个为真那么结果就是真。
System.out.println(true | true);//true
System.out.println(false | false);//false
System.out.println(true | false);//true
System.out.println(false | true);//true使用场景
根据固定的场景来选择使用还是使用| 用户登录。 用户名输入正确 密码输入正确 因为只有用户名和密码同时都正确了那么才能成功登录只要有一个失败了都不行。 使用技巧 当我们需要同时满足左边和右边两种情况时可以使用且 丈母娘选女婿 丈母娘女婿啊你要么买个房子要么买辆车。就可以把我的小棉袄穿走了。 买个房子 | 买辆车 两个条件中只要满足其中一个就可以穿走小棉袄了。 使用技巧 当两种条件只要满足其中一个的时候可以使用或
^异或的使用
在以后用的不多了解一下即可。
计算规则如果两边相同结果为false如果两边不同结果为true
代码示例
//^ //左右不相同结果才是true左右相同结果就是false
System.out.println(true ^ true);//false
System.out.println(false ^ false);//false
System.out.println(true ^ false);//true
System.out.println(false ^ true);//true!取反的使用
是取反也叫做非。
计算规则false取反就是truetrue取反就是false
温馨提示取反最多只用一个。
代码示例
System.out.println(!false);//true
System.out.println(!true);//falseSystem.out.println(!!false);//注意点取反最多只用一个。15.短路逻辑运算符
分类 || 运算结果跟是一模一样的只不过具有短路效果。
||
运算结果跟|是一模一样的。只不过具有短路效果。
逻辑核心
当左边不能确定整个表达式的结果右边才会执行。
当左边能确定整个表达式的结果那么右边就不会执行了。从而提高了代码的运行效率。
举例 用户登录案例 用户名正确 密码正确 如果使用一个不管用户名是否正确都会去验证密码。
思考
如果用户名输入正确了那么我们再判断密码是否正确是符合业务逻辑的。
但是如果用户名输入错误了那么现在还有必要去比较密码吗没有不要了。
如果使用一个那么左边和右边不管什么情况下都会执行。
用户名正确 密码正确
如果用户名输入正确了那么才会验证密码是否输入正确。
如果用户名输入错误了那么就不会再去验证密码是否正确最终的结果直接为false。从而提高了程序运行的效率。 丈母娘选女婿 有房 | 有车 首先先看看有没有房发现有然后再去看看有没有车。
思考
既然都有房子干嘛还要去看车呢多此一举。
有房 || 有车
首先先看看有没有房如果有那么右边就不执行了。最终的结果直接为true。
如果没有房子才会去看右边有没有车。
总结
和 、||和|的运行结果都是一模一样的。
但是短路逻辑运算符可以提高程序的运行效率。
建议
最为常用 ||
16.三元运算符
又叫做三元表达式或者问号冒号表达式。
格式
关系表达式 表达式1 表达式2
计算规则
计算关系表达式的值。如果关系表达式的值为真那么执行表达式1。如果关系表达式的值为假那么执行表达式2。
注意点
三元运算符的最终结果一定要被使用要么赋值给一个变量要么直接打印出来。
案例
public class OperatorDemo12 {public static void main(String[] args) {//需求求两个数的较大值int a 10;int b 20;//格式关系表达式 表达式1 表达式2 //注意点//三元运算符的最终结果一定要被使用。//要么赋值给一个变量要么直接输出。int max a b ? a : b ;System.out.println(max);System.out.println(a b ? a : b);}
}17.练习1-两只老虎
需求
动物园里有两只老虎两只老虎的体重分别为通过键盘录入获得
请用程序实现判断两只老虎的体重是否相同。
代码示例
//1.获取两只老虎的体重
Scanner sc new Scanner(System.in);
System.out.println(请输入第一只老虎的体重);
int weight1 sc.nextInt();
System.out.println(请输入第二只老虎的体重);
int weight2 sc.nextInt();//2.利用三元运算符求出最终结果
String result weight1 weight2 ? 相同 : 不相同;
System.out.println(result);18.练习2-求三个数的最大值
需求
一座寺庙里住着三个和尚已知他们的身高分别为150cm、210cm、165cm。
请用程序实现获取这三个和尚的最高身高。
代码示例
//1.定义三个变量记录和尚的身高
int height1 150;
int height2 210;
int height3 165;//2.利用三元运算符求出两个数中的较大值。
int temp height1 height2 ? height1 : height2;//3.求出最终的结果
int max temp height3 ? temp : height3;System.out.println(max);19.运算符的优先级
在Java中涉及了很多的运算符每一种运算符都有各自的优先级。但是这些优先级不需要记忆。
咱们只要知道其中一点
小括号优先于所有。