JAVA02
Variable变量
l 数据类型四类八种
- byte 8位 1个字节
- short 16位 2个字节
- float int 32位 4个字节
- long double 64位 8个字节
- 字符
- 布尔
String是引用类型
l 和基本类型使用方法一样
变量定义使用注意事项
l 不赋值不能使用
- 不使用编译可以通过
- 如果使用了就会出错
l 作用范围
- 在大括号内
l 不可以重复定义
- 编译失败
类型转换
l 小转大 自动类型转换
直接转换
- Int转double
l 大转小 强制转换
不可以直接转换
- 被转类型 变量名 =(被转类型)要被转的数据
- 编译不会出错但精度会损失
- 一般不要进行
l 算术运算符
- 字符串遇到 “+”变成“+”连接符
- 除法中整数运算得不到小数,如果有小数就会去除
- %读膜 k%b k膜b
- ++a 和a++区别
i. ++a 先加后用
ii. b=++a;
iii. a是a+1 b也是a+1
iv. a++先用后加
v. a是a+1 b也是a
- 赋值运算符
i. -=
ii. +=
iii. *=
iv. /=
v. %=
vi. =
vii. byte b=1;
viii. b=b+1;
ix. 损失精度
x. 1为int类型 4个字节
xi. b为byte类型 1个字节
xii. 为了进行运算需要将byte转为4个字节
xiii. 运算完毕仍为四个字节因此byte就溢出了
xiv. 因此需要最后结果强转为byte
xv. 即 byte=(byte)(b+1);
xvi. 如果写为byte+=1;会自动进行强制类型转换就不用强转了;
l 比较运算符
= != < > <= >=
System.out.println(a=b); b
System.out.println(a==b); true
l 逻辑运算符
& | ! ^ 与 或 非 抑或(相同为true相异为false)
&& 短路与(一边为false另一边不执行)
System.out.println(3>4&&++j); j仍然为j;
|| 短路或(一边为true另一边不执行)
System.out.println(3<4||++j); j仍然为j;
l 三元运算符
- 公式
布尔表达式 ? 结果1:结果2;
布尔表达式为true 结果为1
布尔表达式为false 结果为2
l 商场库存案例
- 固定数据
- 清单商品数据为变量
- 统计为运算
l 总结
- byte<char<short<int<long<float<double
- 整数 int 小数 double
- 强制转换尽量少用
- ++ -- 前置 后置
- 赋值运算符尽量使用+=号类型
- 求三位数的个位十位百位:
public static void main(String[] args) {
@SuppressWarnings("resource")
Char chs[] = String.valueOf(new Scanner(System.in).nextInt()).toCharArray();
System.out.println("个位是:"+chs[2]+"\n十位是:"+chs[1]+"\n百位是:"+chs[0]);
}