ToB企服应用市场:ToB评测及商务社交产业平台
标题:
运算符
[打印本页]
作者:
小小小幸运
时间:
2024-2-29 15:05
标题:
运算符
运算符
运算符和表达式
int a = 10;
int b = 20;
int c = a + b;
复制代码
+:
是
运算符
,并且是算术运算符
a + b:
是
表达式
,由于+是算术运算符,所以这个表达式叫算术表达式
算术运算符
符号
符号作用+加-减*乘/除%取模、取余
public class ArithmeticoperatorDemo1 {
public static void main(String[] args) {
//+
System.out.println(3 + 2);//5
//-
System.out.println(5 - 1);//4
//*
System.out.println(7 * 9);//63
//如果在运算的时候有小数参与
//结论:
//在代码中,如果有效数参与,结果有可能不精确的。
System.out.println(1.1 + 1.1);//2.2
System.out.println(1.1 + 1.01);//2.1100000000000003
//除法
//结论:
//1.整数参与计算,结果只能得到整数
//2.小数参与计算,结果有可能是不精确的
System.out.println(10 / 2);//5
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
//应用场景:
//1.可以用取模判断,A是否可以被B整除
//A % B 10 % 3
//2.可以判断A是否为偶数
//A % 2 如果结果为0,那么证明A是一个偶数。如果结果为1,那么证明A是一个奇数
//3.斗地主发牌
//三个玩家
//把每一张牌都定义一个序号
//拿着序号 % 3 如果结果为1,就发给第一个玩家
//如果结果为2,那么就发给第二个玩家
//如果结果为0,那么就发给第三个玩家
}
}
复制代码
练习--数值拆分
需求:
键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
公式总结:
个位:数值 % 10
十位:数值 / 10 % 10
百位:数值 / 100 % 10
千位:数值 / 1000 % 10
...
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
//1.键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();
//2.获取个位,十位,百位
//公式:
//个位: 数字 % 10
//十位: 数字 / 10 % 10
//百位: 数字 / 10 / 10 % 10
//...
int ge = number % 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10;
System.out.println(ge);
System.out.println(shi);
System.out.println(bai);
}
}
复制代码
数字相加
数字相加
数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算。
类型转换的分类
隐式转换
(自动类型提升)
取值范围
小
的数值-->取值范围
大
的数值
//范例:
int a = 10;
double b = a;//b = 10.0
复制代码
取值范围:double>float>long>int>short>byte
隐式转换的两种提升规则
取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
byte、short、char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算
public class Test {
public static void main(String[] args) {
int a = 10;//取值范围小
double b = 12.3;//取值范围大
double c = a + b;//+ 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
}
}
复制代码
public class Test {
public static void main(String[] args) {
byte a = 10;
byte b = 20;
int c = a + b;//byte、short、char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算
}
}
复制代码
强制转换
取值范围
大
的数值-->取值范围
小
的数值(如果把一个
取值范围大
的数值,赋值给
取值范围小
的变量。是不允许直接赋值的。如果一定要这么做就需要加入强制转换)
格式:
目标数据类型 变量名 = (目标数据类型) 被强转的数据;
//范例:
double a = 12.3;
int b = (int) a;
复制代码
//范例:
int a = 300;
byte b = (byte) a;//会出现错误,byte的取值范围是-128~127,300超出取值范围
复制代码
//范例:
public class ArithmeticoperatorDemo2 {
public static void main(String[] args) {
byte b1 = 10;
byte b2 = 20;
//现在要强转的是b1 + b2计算之后的结果。
//(byte)b1 + b2 强转的是b1,并不是最终的结果
byte result = (byte) b1 + b2;//错误
byte result = (byte) (b1 + b2);//正确
System.out.println(result);//30
}
}
复制代码
字符串相加
字符串的“+”操作
当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。
会将前后的数据进行拼接,并产生一个新的字符串。
"123" + 123//结果是"123123"
复制代码
连续进行“+”操作时,从左到右逐个执行。
1 + 99 +"世界"//结果是"100世界"
复制代码
//范例:
int age = 18;
System.out.println("刚满" + age + "岁");//"刚满18岁"
System.out.println("刚满" + "age" + "岁");//"刚满age岁"
复制代码
//范例:
System.out.println(1 + 2 + "abc" + 2 + 1);//"3abc21"
复制代码
练习:数值拆分
需求:
键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
//1.键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();
//2.获取个位,十位,百位
//公式:
//个位: 数字 % 10
//十位: 数字 / 10 % 10
//百位: 数字 / 10 / 10 % 10
//...
int ge = number % 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10;
System.out.println("个位是" + ge);
System.out.println("十位是" + shi);
System.out.println("百位是" + bai);
}
}
复制代码
字符相加
当
字符 + 字符
或
字符 + 数字
时,会把字符通过ASCLL码表查询到对应的数字再进行计算。
//范例:
System.out.println(1 + 'a');//98
System.out.println('a' + "abc");//"aabc"
复制代码
自增自减运算符
基本用法
符号作用说明++加变量的值加1--减变量的值减1
注意事项:++和--既可以放在变量的前面,也可以放在变量的后面
int a = 10;
a++;//(++a;)后加加(先加加),表示将变量里面得值加1
System.out.println(a);//11
复制代码
单独使用(用法一):
++和--无论是放在变量的前边还是后边,单独写一行
结果都是一样的
。
//范例:
public class ArithmeticoperatorDemo3 {
public static void main(String[] args) {
//++ 和 --
int a = 10;
//表示把变量a里面的值+1
a++;
System.out.println(a);//11
//表示把变量a里面的值+1
++a;
System.out.println(a);//12
//表示把变量a里面的值-1
a--;
System.out.println(a);//11
//表示把变量a里面的值-1
--a;
System.out.println(a);//10
}
}
复制代码
应用场景一:
一岁-->生日后-->两岁
int age = 1;
age++;
System.out.println(age);
复制代码
应用场景二:
购买物品增减购买数量时
-2+
应用场景三:
数¥号
¥&¥&¥++++++
参与计算(用法二):
先用后加
int a = 10;
int b = a++;//a=11,b=10
复制代码
先加后用
int a = 10;
int b = ++a;//a=11,b=11
复制代码
练习
public class ArithmeticoperatorDemo4 {
public static void main(String[] args) {
int x = 10;
//后++:先用后加
int y = x++;
//先++:先加后用
int z = ++x;
System.out.println("x:" + x);//12
System.out.println("y:" + y);//10
System.out.println("z:" + z);//12
}
}
复制代码
赋值运算符
分类
符号作用说明=赋值int 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
注意事项:
+=,-=,*=,/=,%= 底层都隐藏了一个强制类型转换
//范例:
public class ArithmeticoperatorDemo1 {
public static void main(String[] args) {
//+=
//规则:将左边和右边进行相加,然后再把结果赋值给左边
int a = 10;
int b = 20;
a += b;//等同于 a = (int) (a + b);
System.out.println(a);
System.out.println(b);
//细节:
//+=,-=,*=,/=,%= 底层都隐藏了一个强制类型转换
short s = 1;
s += 1;//等同于:s = (short) (s + 1);
System.out.println(s);//2
}
}
复制代码
关系运算符
(关系运算符/比较运算符)的分类
符号说明==a==b,判断a和b的值是否
相等
,成立为true,不成立为false!=a!=b,判断a和b的值是否
不相等
,成立为true,不成立为false<blockquote>
|a>b,判断a是否
大于
b,成立为true,不成立为false
=|a>=b,判断a是否
大于等于
b,成立为true,不成立为false
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4