Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java程序设计 第3章 控制语句.

Similar presentations


Presentation on theme: "Java程序设计 第3章 控制语句."— Presentation transcript:

1 Java程序设计 第3章 控制语句

2 学习目标 掌握布尔数据类型、布尔表达式和布尔运算符 使用if、switch语句控制程序的执行 使用条件运算符 了解字符串格式化输出
了解操作数执行顺序、操作符优先级和结合方向

3 布尔数据类型 boolean类型表示真(true)或假(false)。
关系运算符: <, <=, >, >=, ==, != 关系运算符的计算结果是boolean类型 Boolean类型不能与其它数据类型混合运算 布尔运算符: !, &&, ||, ^, &, | & | ^ Example:TestBoolean.java, LeapYear.java, AdditionTutor.java

4 条件语句 if语句 简单的if语句 if-else语句 if嵌套语句 switch语句 条件表达式

5 简单if语句 语法 if (bool-expression) statement or block
布尔表达式 false true 语句/语句块 if (radius >= 0) { area = radius * radius * PI; System.out.println("The area for the circle of radius " + radius + " is " + area); }

6 if-else语句 语法 if(bool-expression) statement or block 1 else
布尔表达式 false true 语句/语句块1 语句/语句块2 if (radius >= 0) { area = radius * radius * ; System.out.println("The area for the circle of radius " + radius + " is " + area); } else { System.out.println("Negative input"); }

7 嵌套if语句 if (score > 90.0) grade = ‘A’; else if (score >= 80.0)
grade = ‘B’; if (scroe >= 70.0) grade = ‘C’; if (score >= 60.0) grade = ‘D’; grade = ‘F’; if (score > 90.0) grade = ‘A’; else if (score >= 80.0) grade = ‘B’; else if (scroe >= 70.0) grade = ‘C’; else if (score >= 60.0) grade = ‘D’; else grade = ‘F’; 等价于

8 注意 else语句与同一块中最近的if语句匹配 int i = 1, j = 2, k = 3; if (i > j)
if(i > k) System.out.println(“A”); else System.out.println(“B”); 相当于

9 提示 尽量避免使用if语句将测试值赋值给布尔变量,应直接将测试值赋给变量。 if (number % 2 == 0)
even = true; else even = false; 等价于 even = number % 2 == 0;

10 提示 避免在条件表达式中使用比较操作符判断布尔变量的真假。 if (even == true)
System.out.println(“It is even.”); 等价于 if (even)

11 例 税款计算问题 美国的个人所得税根据纳税人情况和须纳税收入进行计算。编写程序,用户输入纳税人情况和须纳税收入,计算出2002年的所得税。
2002年美国个人所得税税率表 Example:ComputeTaxWithSelectionStatement.java

12 switch语句 语法 switch语句的判断条件只能是byte,short,char,int。
switch(expression) { case value1 : statement(s) break; case value2 : default : } switch语句的判断条件只能是byte,short,char,int。 value1-valueN必须与判断条件类型相同,且为常量表达式,不能是变量。 case子句后面可以跟多条语句,这些语句可以不用大括号括起来。 程序将从第一个匹配的case子句处开始执行后面的所有代码(包括后面case子句中的代码)。可以使用break语句跳出switch语句。 default语句是可选的。当所有case子句条件都不满足时执行。 Example:TestSwitch.java

13 条件表达式 语法 bool-expression ? expression1 : expression 2
例如:求num1和num2的最大值 max = (num1 > num2) ? num1 : num2;

14 格式化输出 JDK1.5提供了格式化控制台输出方法 格式化字符串 格式描述符
System.out.printf(format, item1, item2, …); 格式化字符串 String.format(format, item1, item2, …); 格式描述符 %b 布尔值 %c 字符 %d 十进制整数 %f 浮点数 %e 科学计数法 %s 字符串 Example:TestPrintf.java

15 操作符优先级和结合性 括号优先级最高,如果括号有嵌套,内部括号优先执行。 如果没有括号,则根据操作符的优先级和结合规则确定执行顺序。
如果相邻的操作符有相同的优先级,则根据结合规则确定执行顺序。 除赋值运算符之外的二元运算符都是左结合的。 赋值运算符和?:运算符是右结合的。 例如: a+b-c+d 等价于 ((a+b)-c)+d a=b+=c=5 等价于 a=(b+=(c=5))

16 运算符优先级 后缀运算符 [] . (params) expr++ expr—
前缀运算符 expr --expr +expr –expr ! 创建或类型转换 new (type)expr 乘除 * / % 加减 移位 << >> >>> 关系 < > >= <= instanceof 等价 == != 与 & 异或 ^ 或 | 条件与 && 条件或 || 条件 ?: 赋值 = += -= *= /= %= >>= <<= >>>= &= ^= |=

17 操作数的运算次序 操作符的优先级和结合规则只规定了操作符的执行顺序。操作数从左至右进行运算。
二元操作符左边的操作数比右边的操作数优先运算。例如: int a = 0; int x = a + (++a); x的结果为1 int x = (++a) + a; x的结果为2

18 表达式规则 3 + 4 * 4 > 5 * (4 + 3) - 1 的执行顺序为: 规则 可能的情况下,从左向右计算所有子表达式
根据运算符的优先级进行运算 优先级相同的运算符,根据结合方向进行运算 3 + 4 * 4 > 5 * (4 + 3) - 1 的执行顺序为: 3 + 4 * 4 > 5 * (4 + 3) - 1 3 + 4 * 4 > 5 * 7 – 1 > 5 * 7 – 1 > 35 – 1 19 > 35 – 1 19 > 34 false


Download ppt "Java程序设计 第3章 控制语句."

Similar presentations


Ads by Google