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

Slides:



Advertisements
Similar presentations
10.2.switch语句.
Advertisements

5 选择结构.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
Tool Command Language --11级ACM班 金天行.
市级个人课题交流材料 《旋转》问题情境引入的效果对比 高淳县第一中学 孔小军.
4.3 运算符 4.3 运算符 运算符是一种特殊符号, 一般由1-3个字符组成,用于实现数据之间的运算、赋值和比较。运算符共分以下几种 :
第 5 章 流程控制 (一): 條件分支.
我国三大自然区.
第十二单元 第28讲 第28讲 古代中国的科技和文艺   知识诠释  思维发散.
第二章 JAVA语言基础.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
程序设计基础.
C++Primer 3rd edition 中文版 Chap 5
C++中switch语句的BNF 否极泰来 ——《周易》.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
適用於多選一 可減少if 與 else配對混淆的錯誤.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
第3章 C语言的基本语句 和程序结构设计.
走进编程 程序的顺序结构(二).
第4章 选择结构程序设计 4.1 关系表达式和逻辑表达式 关系表达式 1.关系运算符 关系运算符是比较两个操作数大小的符号。
SPARQL若干问题的解释 刘颖颖
變數命名 保留字(Reserved Word)
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
Chap 3 分支结构 3.1 统计输入的一批字符中各类字符的数量 3.2 查询自动售货机中商品的价格 3.3 分支结构程序设计.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
第二章 Java语言基础.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
第二讲 C#程序设计基础(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第四章 选择结构程序设计 计算机科学学院.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第二章Java基本程序设计.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
Chapter 2 基本語法.
第二章 Java基本语法 讲师:复凡.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
程式的時間與空間 Time and Space in Programming
第4章 Excel电子表格制作软件 4.4 函数(一).
第二章 Java语法基础.
第九节 赋值运算符和赋值表达式.
College of Computer Science & Technology
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
学习目标 1、了解基本运算符 2、运算符优先级.
第八节 算术运算符和算术表达式.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第二章 Java基本语法 讲师:复凡.
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
多重條件選擇敘述
鸡兔同笼(续) ——选择结构.
C#快速導讀 流程控制.
判斷(選擇性敘述) if if else else if 條件運算子.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
顺序结构程序设计 ——关于“字符串”和数值.
编译原理实践 6.程序设计语言PL/0.
Presentation transcript:

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

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

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

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

简单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); }

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

嵌套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’; 等价于

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

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

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

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

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

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

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

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

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

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

表达式规则 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 3 + 16 > 5 * 7 – 1 3 + 16 > 35 – 1 19 > 35 – 1 19 > 34 false