第五章 运算符、类型转换以及 条件判断结构
第五章 运算符、类型转换以及 条件判断结构
学习目标: 掌握算术、逻辑和布尔运算符 自动类型转换和强制类型转换 if条件判断语句 switch结构
学习目标: ➢掌握算术、逻辑和布尔运算符 ➢自动类型转换和强制类型转换 ➢ if条件判断语句 ➢ switch结构
算术运算符 作用 运算符示例 注释 加法 suIn num1 I IluIn2 减法 di⊥r=uu1-Iuu2 法 prod nll I1LlL2 除法 ruot - numl/num2 取余 mod ntml& L1m2 取余运算的结果是第一个 如果ut1是3 数除以第二个数得到的余 nu2是6,则uk得 1 31 30 增量 将数以1为增量递增。 如果num为,则运算这个运算符可用于变量之 结果得G。 前或之后,有关的说明请 参见第5-4页 减量 11m- 将一个数每次递减1。这 如nm为5,则运算个运算符可川于变量之前 结宋得4。 或之后,有关的说明请参 见第54
算术运算符:
运算符 作用 语法 示例 前增量 at 1 int j i是7,j是7 后增量 j=1++ int i =6 at 1十十 前减量 ⊥11 int j i 主是5,方是5 后减 量 int i 6 是5,j是6 11b1iec1a工nc1 ement 234567891 public static void main(string args[) 五1 t coLt System. out. printIn(*++count +++count.)i Systerm. out. print ln("count count System. out. print In("count++ +c。unt++) Systen out. print In("count c。ut); 0} 1}
运算符优先级别 优先级规则: AQ→乘除(从左到右)→加减(从左到右) 复杂的表达式: C=25-5*4/2-10+4; 从左到右的规则求值,结果是:34 按照优先级规则求值,结果是:9 用()来表述想要的结构
运算符优先级别 • 优先级规则: ()→乘除(从左到右)→加减(从左到右) • 复杂的表达式: C=25-5*4/2-10+4; 从左到右的规则求值,结果是:34 按照优先级规则求值,结果是:9 • 用()来表述想要的结构
升级和类型转换 赋值和表达式可能引起计算的数据类型与 保存结果的存储位置之间的不匹配 右边的数据类型小于左边的数据类型: byte num1=53 byte num2=47 long num num=num 1 num2 右边的数据类型大于左边的数据类型: int num1=53: nt num2=47 byte num num=num 1 +num2 右边的数据类型和数据大于左边的数据类型: int num1=53 int num2=47 byte num num=num1*num2
升级和类型转换 • 赋值和表达式可能引起计算的数据类型与 保存结果的存储位置之间的不匹配。 ➢ 右边的数据类型小于左边的数据类型: byte num1=53; byte num2=47; long num3; num3=num1*num2; ➢ 右边的数据类型大于左边的数据类型: int num1=53; int num2=47; byte num3; num3=num1+num2; ➢ 右边的数据类型和数据大于左边的数据类型: int num1=53; int num2=47; byte num3; num3=num1*num2;
注意: Java是强类型语言,因此,在进行赋值操作时要对类型进行检查; 、当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式 类型转换(升级); 当将占位数多的类型赋值给占位数少的类型时,需要由用户使用显 式的强制类型转换 其一般形式为 (类型名)(表达式
注意: ✓ Java是强类型语言,因此,在进行赋值操作时要对类型进行检查; ✓ 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式 类型转换(升级); ✓ 当将占位数多的类型赋值给占位数少的类型时,需要由用户使用显 式的强制类型转换; 其一般形式为: (类型名)(表达式)
类型转换 短类型→长类型:自动升级 长类型→短类型:强制转换
类型转换 • 短类型 →长类型 :自动升级 • 长类型 →短类型 :强制转换
自动升级规则 1.(byte或 short op int→int 2(byte或 short或int) op long→long 3(byte或 short或int或long) op float→foat 4.(byte或 short或int或long或 float) op double→ double 5. char op int→int 其中,箭头左边表示参与运算的数据类型 √op为运算符(如加、减、乘等) 右边表示运算结果的数据类型。 如:3+4.5,因为45是 float型,所以3先被转换为 float型,然 后再于45相加,其结果也为 float型
自动升级规则 1. (byte或 short) op int → int 2. (byte或 short或 int) op long → long 3. (byte或 short或 int或 long) op float → float 4. (byte或 short或 int或 long或 float) op double → double 5. char op int → int 其中,箭头左边表示参与运算的数据类型 op为运算符(如加、减、乘等) 右边表示运算结果的数据类型。 如:3+4.5,因为4.5是float型,所以3先被转换为float型,然 后再于4.5相加,其结果也为float型
例:自动升级实例 public class Promotion public static void main( String args[]) byte b=10; char c三"a; i=90 float f= 3. 5f: double d=1.234 float f=f* b i1=c+i: double d1 d1=f1/n一d; 查看结果: Test java 、查看结果: Promotion. java
例: 自动升级实例 public class Promotion { public static void main( String args[ ] ) { byte b = 10; char c = 'a'; int i = 90; float f = 3.5f; double d = 1.234; float f1; f1 = f * b; int i1; i1 = c+i; double d1; d1 = f1 / i1 – d; } } 查看结果:Test.java 查看结果:Promotion.java