运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式
不同运算符连接的表达式体现的是不同类型的表达式
算术运算符
+ : >加法
- : >减法
*: >乘法
/: >整数操作只能得到整数,要想得到小数,必须有浮点数参与运算
%: >取余,获取的是两个数据做除法的余数
数值拆分
个位:数值%10
十位:数值/10%10
百位:数值/100%10
千位:数值/1000%10
......
字符串拼接
当 + 操作中,遇到了字符串,这时 + 就是字符串连接符,而不是算术运算
100~999的水仙花数()
数值拆分实现
public class ForNarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int ge = i%10;
int shi = i/10%10;
int bai = i/100%10;
int sum = (int)(Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3));
if (i==sum){
System.out.print(i+" ");
}
}
}
}
遍历整数方法实现
public class ForNarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int temp=i;
int num=0;
for (int j = 0; j < 2; j++) {
num += (temp % 10)*(temp % 10)*(temp % 10);
temp=temp/10;
}
num += (temp % 10)*(temp % 10)*(temp % 10);
if (i==num){
System.out.println(i+" ");
}
}
}
}
自增自减运算符
i++: 自身值加1(自增)
i-- : 自身值减1(自减)
++ 和 -- 既可以放在变量的后边,也可以放在变量的前边
单独使用时:无论是放在前面还是后面结果都是一样的
参与操作时:
如果放在变量的后边,先将该变量原本的值,取出来参与操作,随后再进行自增(++),自减(--)
如果放在变量的前边,变量先完成自增长, 然后再参与运算
注意:++ 、-- 只能操作变量,不能操作常量
类型转换
隐式转换
把一个取值范围小的数值或者变量,赋值给另一个取值范围大的变量
当取值范围小的数据,和取值范围大的数据进行运算,小的会先提升为大的之后,再进行运算
如byte short char 三种数据在运算的时候,都会提升为int,然后再进行运算
强制转换
把一个取值范围大的数值或者变量,赋值给另一个取值范围小的变量不允许直接赋值,需要加入强制转换
转换格式:目标数据类型 变量名 = (目标数据类型) 被强转的数据;
赋值运算符
=:赋值 int 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=a%b)
关系运算符
==:a==b,判断a和b的值是否相等,成立为true,不成立为false
!=:a!=b,判断a和b的值是否不相等,成立为true,不成立为false
>:a>b,判断a是否大于b,成立为true,不成立为false
<:a<b,判断a是否小于b,成立为true,不成立为false
>=:a>=b,判断a是否大于等于b,成立为true,不成立为false
<=:a<=b,判断a是否小于等于b,成立为true,不成立为false
逻辑运算符
逻辑与:& 并且, 遇 false 则 false
逻辑或:| 或者,遇 true 则 true
逻辑非:!取反
逻辑亦或:^ 相同为 false,不同为 true
短路与:&&
短路或:||
逻辑与和短路与区别:逻辑与左右两边都要执行,短路与左边为true右边才执行
逻辑或和短路或区别: 逻辑或左右两边都要执行,短路或左边为false右边才执行
三元运算符
格式:表达式?值1:值2;
值可以是基本数据类型,也可以是引用数据类型
表达式为真结果为值1,表达式为假值为2