类型转换
自动类型的转换
在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,在参与运算。
byte、short、char--->int--->long--->float--->double
注意:
表达式的最终结果类型由表达式中的最高类型决定。
在表达式中,byte,short,char是直接转成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 |
自增自减运算符
符号 | 作用 |
自增:++ | 放在某个变量前面或者后面,对变量自身的值加1 |
自减:-- | 放在某个变量前面或者后面,对变量自身的值减1 |
注意:
++、--只能操作变量,不能操作字面量
关系运算符
符号 | 说明 |
== | 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 |
关系运算符的结果都是 boolean 类型,要么是true,要么是false
千万不要把 == 误写成 =
逻辑运算符
把多个条件放在一起运算,最终返回布尔类型的值:true、false
符号 | 叫法 | 例子 | 运算逻辑 |
& | 逻辑与 | 2>1&3>2 | 多个条件必须都是true,结果才是true;有一个式false,结果就是false |
| | 逻辑或 | 2>1|3<5 | 多个条件中只有一个true,结果就是true |
! | 逻辑非 | !(2>1) | 就是取反,你真则我假,你假即我真 |
^ | 逻辑异或 | 2>1^3>1 | 前后条件的结果相同,就直接返回false,前后条件不同,才返回true |
&& | 短路与 | 2>10&&3>2 | 判断结果与“&”一样,过程不同:左边false,右边则不执行 |
|| | 短路或 | 2>1||3<5 | 判断结果与“|”一样,过程不同:左边为true,右边则不执行 |
注意:在Java中,“&”、“|”:无论左边是false还是true,右边都要执行
四则运算
键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
运行结果:
package com.itheima.arithmeticoperatorDemo1;
import java.util.Scanner;
public class ArithmeticoperatorDemo3 {
public static void main(String[] args) {
//键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
//1.键盘录入
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个三位数");
int number=sc.nextInt();
//2.获取个位,十位,百位
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);
}
}
三元运算符
格式:条件表达式?值1:值2;
执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2.
键盘输入
System、String在JDK中的Java.Lang包下
Lang包不需要我们导包,是默认的包