第三章 Java 语言的结构化程序设计

  • 格式:ppt
  • 大小:115.50 KB
  • 文档页数:18

下载文档原格式

  / 18
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3、 for 语句 、 for 语句是 Java 语言三个循环语句中功能较强,使用较广泛的一个。forBaidu Nhomakorabea语言三个循环语句中功能较强,使用较广泛的一个。 语句的一般语法如下: 语句的一般语法如下: for (表达式 ;表达式 ;表达式 ) 表达式1;表达式2;表达式3) 表达式 循环体 其中表达式 2 是返回布尔值的条件表达式,用来判断循环是否继续;表达 是返回布尔值的条件表达式,用来判断循环是否继续; 式 1 完成初始化循环变量和其他变量的工作;表达式 3 用来修整循环变 完成初始化循环变量和其他变量的工作; 改变循环条件,三个表达式之间用分号隔开。 量,改变循环条件,三个表达式之间用分号隔开。 for 语句的执行过程是这样的:首先计算表达式 1,完成必要的初始化工作; 语句的执行过程是这样的: ,完成必要的初始化工作; 再判断表达式 2 的值,若为真,则执行循环体,执行完循环体后再返回表 的值,若为真,则执行循环体, 达 3,计算并修改循环条件,这样一轮循环就结束了。第二轮循环从计算 ,计算并修改循环条件,这样一轮循环就结束了。 开始,若表达式的值仍为真,则继续循环, 并判断表达式 2 开始,若表达式的值仍为真,则继续循环,否则跳出整个 for 语句执行下面的句子。 for 语句的三个表达式都可以为空,但若表达 语句执行下面的句子。 语句的三个表达式都可以为空, 也为空,则表示当前循环是一个无限循环, 式2 也为空,则表示当前循环是一个无限循环,需要在循体中书写另外的 跳转语句终止循环。 跳转语句终止循环。
3.2.1 if 语句 if 语句的一般形式是: 语句的一般形式是: if (条件表达式) 条件表达式) 语句块 ; // if 分支 else 语句块 ; // else 分支 在编写程序时, 分支, 在编写程序时,也可以不书写 else 分支,此时若条件表达 式的取值为假, 式的取值为假,则绕过 if 分支直接执行 if 语句后面的其 他语句。语法格式如下: 他语句。语法格式如下: if ( 条件表达式) 条件表达式) 语句块 ; // if 分支 其他语句 ;
else { if(score>=60) PassCount ++; else FailureCount ++; TotalNumber ++; TotalScore += score; AverageScore = TotalScore/TotalNumber; } input.setText(""); repaint(); } return true; } }
public void init() { prompt = new Label("Enter next student score(-1 for reset):"); input = new TextField(4); add(prompt); add(input); } public void paint(Graphics g) //显示更新后的各项统计数据 显示更新后的各项统计数据 { g.drawString ("Total student number is: "+TotalNumber,10,80); g.drawString ("The pass number is : "+PassCount,10,100); g.drawString ("The failure number is: "+FailureCount,10,120); g.drawString ("The average score of whole class is : "+AverageScore,10,140); }
第三章 Java 语言的结构化程序设计
3.1 算法与结构化程序设计 1、算法 、 任何可计算性问题的解决过程都可以转化为按指定顺序执行的一系 列操作过程。 ( )可执行的操作;( ;(2)执行操作的顺序"组 列操作过程。由"(1)可执行的操作;( )执行操作的顺序 组 成解决问题的过程称为算法。 成解决问题的过程称为算法。 2、结构化程序设计的三种基本结构 、 顺序结构:程序中的语句按它们书写的顺序一句接一句地执行。 顺序结构:程序中的语句按它们书写的顺序一句接一句地执行。 分支结构:程序根据条件,判断执行流程。 分支结构:程序根据条件,判断执行流程。 循环结构:程序反复执行某段程序块,直到结束条件满足。 循环结构:程序反复执行某段程序块,直到结束条件满足。 结构化编程原则:自顶向下、逐步求精。 结构化编程原则:自顶向下、逐步求精。 3.2 分支控制结构 Java 中的分支语句有两个,一个是负责实现双分支的 if 语句,另 中的分支语句有两个, 语句, 一个是负责实现多分支的开关语句 switch 。
求某班的平均成绩、及格人数和不及格人数。 例 3.1 求某班的平均成绩、及格人数和不及格人数。 import java.applet.*; import java.awt.*; public class ClassScore extends Applet //定义主类 定义主类 { Label prompt; //定义提示标签 定义提示标签 TextField input; //定义输入区域 定义输入区域 int PassCount = 0; //定义并初始化及格计数器 定义并初始化及格计数器 int FailureCount = 0; //定义并初始化不及格计数器 定义并初始化不及格计数器 int TotalNumber = 0; //定义并初始化总人数计数器 定义并初始化总人数计数器 int TotalScore = 0; //定义并初始化总分累计器 定义并初始化总分累计器 double AverageScore = 0; //定义并初始化班平均分 定义并初始化班平均分
补充例题: 补充例题:从键盘接受用户输入的一个字符后输出这个字符整型数值程序 showCharValue.java import java.io.* ; public class showCharValue { public static void main(String args[]) { char ch ; try{ System.out.println("请输入一个字符,以'#'结束 请输入一个字符, # 结束 结束"); 请输入一个字符 do { ch = (char)System.in.read() ; System.out.println("字符 + ch + "的整数值为 + (int)ch); 字符" 的整数值为" 字符 的整数值为 System.in.skip(2) ; // 跳过回车键 }while(ch!='#'); }catch(IOException e) { System.err.println(e.toString()); } } }
需要注意的是, 判断, 需要注意的是,switch 语句的每一个 case 判断,都只负责指明流程 分支的入口点,而不负责指定分支的出口点, 分支的入口点,而不负责指定分支的出口点,分支的出口点需要 编程人员用相应的跳转语句来标明。如下例子: 编程人员用相应的跳转语句来标明。如下例子: switch ( MyGrade ) { case 'A' : MyScore = 5 ; break ; case 'B' : MyScore = 4 ; break ; case 'C' : MyScore = 3 ; break ; default : MyScore = 0 ; } break 是流程跳转语句,它定义了分支的出口,多分支开关语句的 是流程跳转语句,它定义了分支的出口, 结构就完整了。 结构就完整了。
3.2.2 switch 语句 switch 语句是多分支的开关语句,它的一般格式如下: 语句是多分支的开关语句,它的一般格式如下: 多分支的开关语句 switch (表达式) 表达式) { case 判断值 : 语句块 // 分支 判断值1 语句块1 分支1 case 判断值 : 语句块 // 分支 判断值2 语句块2 分支2 ...... case 判断值 : 语句块 // 分支 判断值3 语句块n 分支n default 语句块n+1 // 分支 分支n+1 : 语句块 } switch 语句在执行时,首先计算表达式的值,这个值必须是整型 语句在执行时,首先计算表达式的值,这个值必须是整型 字符型, 分支的判断值的类型相一致。 或字符型,同时应与各个 case 分支的判断值的类型相一致。计算 出表达式的值之后, 分支的判断值相比较, 出表达式的值之后,将它先与第一个 case 分支的判断值相比较, 若相同, 分支的语句块;否则, 若相同,则程序的流程转入第一个 case 分支的语句块;否则,再 依此类推。 将表达式的值与第二个 case 分支相比较 ...... 依此类推。如果表达 分支都不相同, 式的值与任何一个 case 分支都不相同,则转而执行最后的 default 分支;在 default 分支不存在的情况下,则跳出整个 分支; 分支不存在的情况下, switch 语句。 语句。
补充例题: 完全数是指等于其所有因子和(包括1但不包括 补充例题:输出 10000 之内的所有完全数程序 PerfectNum.java 。完全数是指等于其所有因子和(包括 但不包括 这个数本身)的数。 这个数本身)的数。 import java.io.*; public class PerfectNum { public static void main(String args[]) { int count = 1 ; for (int i = 1 ; i < 1000 ; i++ ) { int y = 0 ; for (int j = 1 ; j < i ; j ++ ) if ( i % j == 0 ) y += j ; if ( y == i ) { System.out.print(i + String.valueOf( '\t')) ; count ++ ; if (count % 3 == 0 ) System.out.println() ; } } try{ System.in.read(); }catch(IOException e){} } }
3.3 循环控制结构 循环结构是在一定条件下,反复执行某段程序的流程结构, 循环结构是在一定条件下,反复执行某段程序的流程结构,被反复 执行的程序被称为循环体。 执行的程序被称为循环体。 1、 while 语句 、 while 语句的一般语法格式如下: 语句的一般语法格式如下: while (条件表达式) 条件表达式) 循环体 其中条件表达式的返回值为布尔型,循环体可以是单个语句, 其中条件表达式的返回值为布尔型,循环体可以是单个语句,也可 以是复合语句块。 以是复合语句块。 while 语句的执行过程是先判断条件表达式的值,若为真,则执行 语句的执行过程是先判断条件表达式的值 若为真, 先判断条件表达式的值, 循环, 循环,循环体执行完之后再无条件转向条件表达式再做计算与判 当计算出条件表达式为假时, 断;当计算出条件表达式为假时,跳过循环体执行 while 语句后 的语句。 的语句。
2、 do - while 语句 、 do - while 语句的一般语法结构如下: 语句的一般语法结构如下: do 循环体 while (条件表达式); 条件表达式); do - while 语句的使用与 while 语句很类似,不同的是 语句很类似, 语句是先计算条件表达式的值,而是无条件 不像 while 语句是先计算条件表达式的值,而是无条件 地先执行一遍循环体,再来判断条件表达式。 地先执行一遍循环体,再来判断条件表达式。若表达式 的值为真,则再运行循环体, 循环, 的值为真,则再运行循环体,否则跳出 do - while 循环, 执行下面语句。可以看出, 执行下面语句。可以看出,do - while 语句的特点是它 的循环体将至少被执行一次。 的循环体将至少被执行一次。
public boolean action(Event e,Object o) { int score; if(e.target == input) { score = Integer.parseInt(input.getText());//转化成整型 转化成整型 if(score == -1) { PassCount = 0; FailureCount = 0; TotalNumber = 0; TotalScore = 0; AverageScore = 0; }