Java语句及其控制结构.ppt_第1页
Java语句及其控制结构.ppt_第2页
Java语句及其控制结构.ppt_第3页
Java语句及其控制结构.ppt_第4页
Java语句及其控制结构.ppt_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 Java语句及其控制结构 3.1 Java程序结构 3.2 选择语句 3.3 循环语句 3.4 跳转语句 习题 例3.1 以一个程序范例来说明Java程序的构成。 import java.applet.Applet; import java.awt.*; public class GetSquare extends Applet Label label1; public void init() label1=new Label(前个数的平方); add(label1); 3.1 Java程序结构 3.1.1 Java程序构成 public void paint(Graphics g) for (int i=0; i=d1) System.out.println(d1); System.out.println(d2); else System.out.println(d2); System.out.println(d1); 图 3.1 对于复杂的情况,可以嵌套使用ifelse语句。它 的语法格式为: if (条件表达式1) s1语句; else if (条件表达式2) s2语句; else s3语句; 在这里依次计算条件表达式,如果某个条件表达 式的值为true,就执行它后面的语句,其余部分被 忽略;所有表达式的值都为false,就执行最后一个 else后的s3语句。s1、s2和s3都可以是复合语句。 3.2.3 ifelse复合结构 例3.4 下面是一个用ifelse语句构造多分支程序 的例子,判断某一年是否为闰年。 闰年的条件是符合下面二者之一: 能被4整除, 但不能被100整除;能被400整除。输出结果如图 3.2所示。 public class LeapYear public static void main(String args) boolean leap; int year=1989; if (year%4=0 else System.out.println(year+ 年不是闰年); year=2000; / 方法2 if (year%4!=0) leap=false; else if (year%100!=0) leap=true; else if (year%400!=0) leap=false; else leap=true; if (leap=true) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); year=2050; / 方法3 if (year%4=0) if (year%100=0) if (year%400=0) leap=true; else leap=false; else leap=false; else leap=false; if (leap=true) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); 图 3.2 方法1用一个逻辑表达式包含了所有的闰年条件 ;方法2使用了ifelse语句的复合形式;方法3则通 过大括号对ifelse进行匹配来实现闰年的判断。 可以根据程序对比这3种方法,体会其中的联系和 区别,在不同的场合选用适当的方法。 虽然嵌套的条件语句可实现多个分支处理,但嵌 套太多时容易出错和混乱,这时可以使用开关语句 switch处理。实际上开关语句switch也是一种 ifelse结构,不过它使你在编程时很容易写出判断 条件,特别是有很多条件选项的时候。 开关语句switch的语法格式为: switch (表达式) case 常量1: 语句1; break; 3.2.4 switch开关语句 case 常量2: 语句2; break; default: 语句n; 其中switch、case、default是关键字,default子 句可以省略。开关语句先计算表达式,然后将表达 式值与各个常量比较,如果表达式值与某个常量相 等,就执行该常量后面的语句;如果都不相等,就 执行default下面的语句。如果无default子句,就什 么都不执行,直接跳出开关语句。 使用开关语句时,注意以下几点: case后面的常量必须是整数或字符型,而且不能 有相同的值; 通常在每一个case中都应使用break语句提供一 个出口,使流程跳出开关语句。否则,在第一个满 足条件case后面的所有语句都会被执行,这种情况 叫做落空。 例3.5 有break语句的switch结构示例。本程序当 温度变量c小于10时,显示“有点冷”;c小于25时 ,显示“合适”;c大于25且小于35时,显示“有 点热”;c大于35时,显示“太热了”。输出结果为c 等于28时的情况如图3.3所示。 图 3.3 public class W1 public static void main(String args) int c=28; switch (c=0; i-) System.out.println(a+i+ = +ai); 图 3.5 例3.8 按5的增量打印出一个从摄氏度到华氏度 的转换表,输出结果如图3.6所示。 class CtoF public static void main (String args) int fahr,cels; System.out.println(摄氏度 华氏度); for (cels=0; cels0) sum=0; for (int i=1; i=10) break; System.out.println( i为+i+时循环结束); 图 3.10 标号是标记程序位置的标识符。break语句只能 跳转到循环语句下面的第一条语句上,而带标号的 break语句可直接跳转到标号处。正常的break只退 出一重循环,如果要退出多重循环,可以使用带标 号的break语句。它的语法格式为: 标识符: break 标识符; 3.4.2 带标号的break语句 例3.13 带标号的break语句的使用示例。运行该 程序,正常情况下可从键盘接受16个输入字符,但 当输入b按回车时,break lab1语句就会结束二重循 环。输出结果如图3.11所示。 class B1 public static void main(String args) throws java.io.IOException char ch; lab1: / 此处为标号标识符 for (int i=0; i3) System.out.println(Continue); continue lab1; System.out.println(i=+i+ j=+j); 图 3.13 例3.16 求100200间的所有素数。该例通过一个 嵌套的for循环来实现,输出结果如图3.14所示。 public class Find public static void main(String args) System.out.println( * 100200间的所有素数 *); int n=0; outer: for (int i=101; i0) System.out.println(第一); else if (x-3) System.out.println(第二); else System.out.println(第三); 判断x的取值在什么范围内时将打印字符串“第二 ”? A. x 0 B. x -3 C. x -3 3-3 编写程序,根据考试成绩的等级打印出百分 制分数段。设: A为90分以上,B为80分以上,C 为70分以上,D为60分以上,E为59分以下。要求 在程序中使用开关语句。 3-4 编写程序,从10个数中找出最大值。 3-5 编写程序,计算n的阶乘(n!),设n10。 3-6 编写程序,计算数学常数e的值, e=1+1/1!+1/2!+1/3!+。 3-7 编写程序,输出以下数据: N 10N 100N 1000N 1 10 100 1000 2 20 200 2000 3 30 300 3000 4 40 400 4000 5 50 500 5000 3-8 编写程序,输出乘法口诀。 3-9 编写程序,输出1100间的所有奇数。 3-10 以下程序的输出结果是什么? public class Test1 public static void main(String args) int y, x=1, total=0; while(x=10) y=x*x; System.out.println(y); total+=y; +x; System.out.println(total is +total); 3-11 以下程序的输出结果是什么? public class Test2 public static void main(String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论