Java的基础语法(二)
一、类型转换
1.1类型转换分类
:分为自动类型转换与强制类型转换
1.2自动类型转换
把一个表示数据范围小的数值或者变量赋值给另一个数据范围大的变量。
范例:doubled d = 10;
如图:byte和short类型不可以直接到char做自动类型转换。
并且boolean是非数值的数据类型不参与数值型的数据类型转换。
1.3强制类型转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
- 格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
- 范例:int k = (int)88.88;
- 强制类型转换不建议使用
二、算数运算符
2.1运算符与表达式
-
运算符:对变量或者常量进行操作的符号
-
表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。
-
举例说明:
int a = 10;
int b = 20;
int c = a + b;
+:是运算符,并且是算数运算符
a + b : 是表达式,并且由于+是算术运算符,所以这个表达式是算术表达式。
2.2算术运算符
算术运算符:+,-,*,/,%
- 整数相除只能得到整数,要想得到小数,必须有浮点数的参与。
2.3字符的"+"操作
算术表达式中包含多个数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
1.byte类型和short类型以及char类型将被提升到int类型
2.整个表达式的类型自动提升到表达式中最高等级操作数同样的类型。
等级顺序:byte,short,char ->int ->long ->float ->double
举例:int i = 10; char c = ‘A’;
则:int j = i + c;结果为58
举例: double d = 10 + 13.24;
2.4字符串的"+"操作
例:“it”+"heima"的输出结果为:itheima
“itheima”+"666"的输出结果为:ithema666
“666”+"itheima"的输出结果为:666itheima
“黑马”+6+66的输出结果为:黑马666
1+99+"年黑马"的输出结果为:100年黑马
因此:
当"+“操作中出现字符串时,这个”+"是字符串连接符,而不是算术运算符。例:“itheima”+666
在"+“操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行”+"操作时,从左到右逐个执行。例:1+99+“年黑马”
三、赋值运算符
符号:"="
扩展符号:"+=","- =","*=","/=","%="(a%=b,将a除以b的余数给a)
例:i += 20; 可以写成 i = i + 20;
注意:扩展运算符隐含了强制类型转换。
四、自增自减运算符
符号:++,自增,变量的值加1;
--,自减,变量的值减一;
注意:
- ++和–既可以放在变量的后面也可以放在前面。
- 单独使用的时候,++和–无论在变量前面还是后面都是一样的结果。
- 参与操作时,如果放在变量的后面,先拿变量参与操作再加1;
- 参与操作时,如果放在变量的前面先拿变量++或者–,后拿变量参与操作。
五、关系运算符
5.1关系运算符
注意:"=“是赋值,”=="是判断是否相等
六、逻辑运算符
6.1逻辑运算符概述
在Java中表示3<x<6,可以写成x>3&&x<6。其中&&就是一个逻辑运算符,逻辑运算符就是用来连接关系表达式的运算符。当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。
6.2逻辑运算符
6.3短路逻辑运算符
注意:逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
七、三元运算符
7.1三元运算符
-
格式:关系表达式?表达式1:表达式2;
-
范例:a>b?a:b;
-
计算规则:
首先计算关系表达式的值:
如果为true,表达式1的值就是运算结果
如果为false,表达式2的值就是运算结果
范例:
int height1 = 150;
int height2 = 210;
int height3 = 165;(获取最大身高)
int temp = (height1>height2)?height1:height2;
int max = (temp>height3)?temp:height3;
int height1 = 150;
int height2 = 210;
int height3 = 165;(获取最大身高)
int temp = (height1>height2)?height1:height2;
int max = (temp>height3)?temp:height3;