1、程序的流程控制与实现 内容程序的流程控制与实现一复习提问,引入新课:复习提问不同数据类型的知识点,再引入关于流程控制的知识点,顺序语句、条件语句、循环语句。二新课教学:1.1编写与运行包含顺序结构的Java程序【任务1】通过键盘输入3次密码且判断是否正确【任务描述】编写Java程序通过键盘先后输入3次密码,判断是否正确且输出判断结果。【知识必备】1顺序结构有些简单的程序是按程序中语句的先后顺序依次执行,这种结构称为顺序结构。顺序结构简单易懂,符合人们的编写和阅读习惯。顺序控制结构是计算机程序最基本的结构,它表示由上至下、按语句出现的先后次序执行,语句的执行顺序与语句书写顺序一致。2Scanne
2、r类Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的实用方法,Scanner类用于接受键盘输入,但它不属于I/O流。【任务实现】在NetBeans集成开发环境中创建项目Unit03,在项目Unit03中创建类Java3_1,在该类中程序代码。1.2编写与运行包含选择结构的Java程序1.2.1编写与运行包含if语句的Java程序【任务2】判断商品的当前库存数量是否足够【任务描述】编写Java程序应用if语句判断表A-1中所购商品“海信LED55EC520UA”的当前库存数量是否足够?【知识必备】1if语句的语法格式if语句的语法格式如下所示:if (条件表达式
3、)语句块;2if语句的使用说明if语句括号中的条件表达式只能为逻辑表达式,如果条件表达式的值为true,则先执行语句块,然后顺序执行if-else后面的语句;否则,不执行语句块,直接执行if-else后面的语句,此时该if语句没有实质作用。语句可以为单条词句,也可以为用括起来的复合语句。【任务实现】在项目Unit03中创建类Java3_2,在该类中输入程序代码。【任务2】的程序代码/*程序名称:Java3_2.java */程序代码public class Java3_2 public static void main(String args) int stockNumber; int sal
4、eNumber; String productName=海信LED55EC520UA; stockNumber = 8; saleNumber = 10; if (stockNumbersaleNumber) System.out.println(商品+productName +当前库存数量不够,请减少购买数量。); 1.2.2编写与运行包含if-else语句的Java程序【任务3】确定不同类型商品的折扣率和优惠价格【任务描述】如果手机的折扣率设置为8,其他类型商品的折扣率设置为6,编写Java程序应用if-else语句确定不同类型商品的折扣率和优惠价格。【知识必备】1if-else语句的语法
5、格式if-else语句的语法格式如下所示:if (条件表达式)语句块1;else语句块2;2if-else语句的使用说明当if后面的条件表达式的值为true时,执行语句块1,然后顺序执行if-else后面的语句;否则,执行语句块2,然后顺序执行if-else后面的语句。【任务实现】在项目Unit03中创建类Java3_3,在该类中输入程序代码。【任务3】的程序代码/*程序名称:Java3_3.java */程序代码public class Java3_3 public static void main(String args) String productName = 华为P8; String
6、 productCategory = 手机; / 商品类别为手机 double price = 2058.00; / String productName=佳能IXUS 275 ; / String productCategory = 数码相机; / double price = 1580.00; double preferentialPrice; double rebate; if (productCategory = 手机) rebate = 0.08; / productCategory = 手机 else rebate = 0.06; / pproductCategory = 数码相机
7、 preferentialPrice = Math.rint(price * (1 - rebate); System.out.print(商品 + productName + 的折扣率为: + rebate*100+); System.out.println(,优惠价格为: + preferentialPrice+元); 1.2.3编写与运行包含if-else if语句的Java程序【任务4】确定不同价位商品的折扣率和优惠价格【任务描述】如果价格不高于1500元的所有商品折扣率设置为8,价格高于1500元但不高于8000元的所有商品折扣率设置为6,价格高于8000元的所有商品折扣率设置为5。
8、编写Java程序应用if-else if语句确定不同价位商品的折扣率和优惠价格。【知识必备】1if-else if语句的语法格式ifelse if语句的语法格式如下所示:if (条件表达式1) 语句块1 else if(条件表达式2) 语句块2 else if(条件表达式n-1) 语句块n-1 else 语句块n 2if-else if语句的使用说明ifelse if语句的执行规律如下:当表达式1为true时,则执行语句块1,然后跳过整个ifelse if语句执行程序中下一条语句;当表达式1为false时,将跳过语句块1的执行而去判断表达式2。如果表达式2为true,则执行语句块2,然后跳过整
9、个ifelse if语句执行程序中下一条语句;如果表达式2为false,则跳过语句块2的执行而去判断表达式3,依次类推。当表达式1、表达式2、表达式n-1全为false时,将执行语句n再转而执行程序中ifelse if语句后面的语句。【任务实现】在项目Unit03中创建类Java3_4,在该类中输入程序代码。【任务4】的程序代码/*程序名称:Java3_4.java */程序代码public class Java3_4 public static void main(String args) String productName = 佳能IXUS 275 ; double price = 15
10、80.00; / String productName=Apple iPhone 6; / double price = 1500.00; / String productName=创维50M5; / double price = 8499.00; double preferentialPrice; double rebate; if (price = 1500) rebate = 0.08; / price = 1500.00 else if(price=8000) rebate = 0.06; / price = 1580.00 else rebate = 0.05; / price =
11、8499.00 preferentialPrice = Math.round(price * (1 - rebate); System.out.print(商品 + productName + 的折扣率为: + rebate*100+); System.out.println(,优惠价格为: + preferentialPrice+元); 1.2.4编写与运行包含switch语句的Java程序【任务5】判断用户操作的类型【任务描述】编写Java程序应用switch语句判断用户操作的类型。【知识必备】1switch语句的语法格式switch语句的语法格式如下所示:switch (表达式) cas
12、e 常量1 : 语句组1 ;break ;case 常量2 : 语句组2 ;break ;case 常量n : 语句组n ;break ;default : 语句组n+1 ;break ;2switch语句的使用说明先计算语句中表达式的值,并将该值依次与case后面的常量进行比较,如果与哪一个常量相匹配,则从哪个case所对应的语句组开始执行,直至遇到break结束switch语句;如果整型表达式的值不能与任何一个常量相匹配,则执行default后面的语句组。【任务实现】在项目Unit03中创建类Java3_5,在该类中输入程序代码。【任务5】的程序代码/*程序名称:Java3_5.java
13、*/程序代码public class Java3_5 public static void main(String args) int operand; String strPrompt; operand = 4; / 1,2,3 switch (operand) case 1: strPrompt = 去结算; break; case 2: strPrompt = 修改购买数量; break; case 3: strPrompt = 删除选购的商品; break; default: strPrompt = 继续购物; System.out.println(用户当前的操作为: + strPro
14、mpt); 1.3编写与运行包含循环结构的Java程序1.3.1编写与运行包含while语句的Java程序【任务6】限制用户输入密码的次数【任务描述】编写Java程序应用while语句限制用户输入密码的次数。【知识必备】1while循环语句的语法格式while循环语句的语法格式如下所示:初始化语句while (条件表达式) 循环体 迭代语句2while循环语句的执行过程while语句的执行过程如下:(1)首先判断while后面括号中的条件表达式的值。(2)如果条件表达式的值为true,则执行循环体内部的语句块。(3)然后再返回while语句的开始处,再次判断while后面括号中条件表达式的值是
15、否为true,只要表达式的值一直为true,那么就重复执行循环体内部的语句块。直到while后面括号中的条件表达式的值为false时,才退出循环,并执行while语句的下一条语句。3while循环语句的使用说明while循环语句在每次执行循环体之前,先对逻辑型表达式求值,如果值为true,即循环条件成立,则执行循环体部分;否则循环体一次都不会被执行。迭代语句总是位于循环体的最后,用于改变循环条件的值,使得循环在合适的时机结束。【任务实现】在项目Unit03中创建类Java3_6,在该类中输入程序代码。【任务6】的程序代码/*程序名称:Java3_6.java */程序代码import java
16、.util.Scanner;public class Java3_6 public static void main(String args) int maxNum = 3; String strInitPassword = 123; String strPassword; int i = 1; System.out.println(请输入正确的密码且回车,最多只能输入 + maxNum + 次); Scanner input = new Scanner(System.in); while (i maxNum) System.out.println(你已经输入了 + maxNum + 次密码,
17、都不正确,无法正常登录); 1.3.2编写与运行包含do-while语句的Java程序【任务7】获取由随机数组合的密码【任务描述】编写Java程序应用do-while语句获取由随机数组合的6位密码。【知识必备】1do-while循环语句的语法格式do-while循环语句的语法格式如下所示:初始化语句do 循环体 迭代语句 while (条件表达式) ;2do-while循环语句的执行过程do-while语句的执行过程如下:(1)首先执行一次循环体中的语句。(2)然后判断do-while语句括号中条件表达式的值,决定是否继续执行循环。如果条件表达式的值为true,就返回do位置并再一次执行循环体
18、中的语句;如果条件表达式的值为false,则终止循环。【任务实现】在项目Unit03中创建类Java3_7,在该类中输入程序代码。【任务7】的程序代码/*程序名称:Java3_7.java */程序代码import java.util.*;public class Java3_7 public static void main(String args) String strPassword= ; int i=1; int seed=100; Random r; do r=new Random(seed); strPassword+=r.nextInt(9); i+; seed+=50*i; w
19、hile(i7); System.out.println(由随机数组合的密码为: + strPassword.trim(); 1.3.3编写与运行包含for语句的Java程序【任务8】删除商品名称字符串中多余的空格【任务描述】编写Java程序应用for语句删除商品名称字符串中多余的空格。【知识必备】1for循环语句的语法格式for循环语句通常用于循环次数确定的情况,也可以根据循环结束条件实现循环次数不确定的情况。for循环语句的语法格式如下:for (表达式; 表达式2 表达式3) 循环体 ;表达式1通常是初始化语句,表达式2通常是条件表达式,表达式3通常是迭代语句。2for循环语句的执行过程
20、for语句的执行过程如下:(1)首先计算表达式1的值。(2)然后判断表达式2的值,如果表达式2的值为false,则转而执行步骤(4);如果表达式2的值为true,则执行循环体中的语句。(3)然后计算表达式3的值,转回步骤(2)判断表达式2的值。(4)结束循环,执行程序中for语句的下一条语句。3for循环语句的使用说明(1)for循环在执行时,先执行循环的初始化语句,初始化语句只能在循环开始前执行一次。每次执行循环之前,先计算逻辑型表达式的值,如果表达式的值为true,即可循环条件成立,则执行循环体部分,循环体执行结束后执行循环迭代语句。(2)初始化语句、表示循环条件的逻辑型表达式、迭代语句这
21、三个部分都可以省略,但三者之间的分号不可以省略。当表示循环条件的逻辑型表达式省略时,默认值为true。(3)初始化语句、迭代语句这两个部分可以为多条语句,各语句之间用半角逗号分隔。(4)在初始化部分定义的变量,其有效范围仅限于for循环语句内部。【任务实现】在项目Unit03中创建类Java3_8,在该类中输入程序代码。【任务8】的程序代码/*程序名称:Java3_8.java */程序代码public class Java3_8 public static void main(String args) String productName = 华 为P 8; System.out.print
22、ln(商品的原名称为: + productName); productName = productName.trim(); int nameLen = productName.length(); String namePart1, namePart2; String newName = ; namePart2 = productName; for (int i = 0; i nameLen; i+) namePart1 = namePart2.substring(0, 1); System.out.println(第 + (i + 1) + 次截出的字符为: + namePart1 + );
23、namePart2 = namePart2.substring(1); if (namePart1.trim().length() != 0) newName += namePart1; System.out.println(商品的新名称为: + newName); 1.3.4编写与运行包含for-each语句的Java程序【任务9】计算购物车中选购商品的总数量【任务描述】编写Java程序应用for-each语句计算购物车中选购商品的总数量。【知识必备】for-each循环是一种简洁的for循环结构,使用这种循环结构可以自动遍历数组或集合中的每个元素。其语法格式如下:for (变量声明 : 数
24、组名或集合名 ) 循环体 其中for-each循环中所声明变量的数据类型与正在访问的数组或集合中元素的数据类型兼容,该变量在for-each循环内部可用,其值等于数组或集合中当前元素的值。【任务实现】在项目Unit03中创建类Java3_9,在该类中输入程序代码。【任务9】的程序代码/*程序名称:Java3_9.java */程序代码public class Java3_9 public static void main(String args) int number = 1, 2, 6, 10, 3 ; System.out.println(购物车中选购商品的数量如下:); int numT
25、otal = 0; for (int n : number) System.out.print(n + t); numTotal += n; System.out.println(); System.out.println(数组中的元素共有: + number.length + 个); System.out.println(购物车中选购商品的总数量为: + numTotal); 1.4编写与运行包含嵌套结构的Java程序(1)分支嵌套结构在选择结构的分支中又嵌套了另外一个分支结构,称为分支嵌套。由于if语句、ifelse语句也是语句的一种,所以if语句或者ifelse语句内部的语句块中也可以包
26、含if语句或ifelse语句,这样便形成了分支嵌套结构。if语句或者ifelse语句与switch语句也可以嵌套(2)循环嵌套结构在一个循环结构的循环体内又包含另一个完整的循环结构,称为循环嵌套。由于循环语句在一个程序中仍然可以看作一条语句,在循环体内部可以包含多条语句,也可以包含循环语句和选择语句等。在一个循环语句的内部又包含了另外一个循环语句,这种形式称为循环嵌套。对于Java语言,循环嵌套主要由while、dowhile和for语句自身嵌套或相互嵌套构成。(3)混合嵌套结构选择结构和循环结构还可以相互嵌套,即在循环结构的循环体内部包含选择结构,或者在选择结构内部包含循环结构。1.5编写与
27、运行包含continue语句与break语句的程序1continue语句continue语句可以应用在while循环结构、do-while循环结构和for循环结构中,其作用是结束本次循环,跳过循环体中下面尚未执行的语句,进入当前所在层循环的下一次循环,返回到循环结构的开始处执行迭代语句,而不是终止循环。 2break语句break语句可以应用在switch语句、while循环结构、do-while循环结构和for循环结构中,其作用根据其位置不同有两种:一是在switch语句中被用来终止一个语句序列;另一种是在循环结构中用来退出循环。三课堂提问:1、顺序语句、条件语句、循环语句的格式?2、if语句、if-else语句、switch语句等运用场景?3、while语句、do-while语句、for语句等运用场景?四课堂小结:1、不同情境的应用内容;2、各种任务下的相关知识点。五布置作业: P84-87题目