收藏 分享(赏)

第3章 不同类型的Java语句.ppt

上传人:kpmy5893 文档编号:9716509 上传时间:2019-08-27 格式:PPT 页数:66 大小:1.21MB
下载 相关 举报
第3章 不同类型的Java语句.ppt_第1页
第1页 / 共66页
第3章 不同类型的Java语句.ppt_第2页
第2页 / 共66页
第3章 不同类型的Java语句.ppt_第3页
第3页 / 共66页
第3章 不同类型的Java语句.ppt_第4页
第4页 / 共66页
第3章 不同类型的Java语句.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、第3章 Java语句及其控制结构,主要任务了解Java程序的结构了解Java类的主要构成成分学习使用各种语句结构类型,本章主要内容,1.Java程序的构成与语句的类型2.选择语句3.循环语句4.总结提高5.知识扩展,3.1 Java程序的构成与语句的类型,3.1.1 Java程序构成成分3.1.2 Java语句的种类,3.1.1 Java程序构成成分,例3.1 一个程序范例,说明Java程序的构成。import java.applet.Applet;import java.awt.*;public class GetSquare extends AppletLabel label1;publi

2、c void init() label1=new Label(“前个数的平方“);add(label1);public void paint(Graphics g) for (int i=0; i30; i+) int x=i%10, y=i/10;g.drawString(String.valueOf(i+1)* (i+1),20+30*x, 50+25*y);,以上得出:,Java源程序一般包括两部分:Java包引入(如果有的话)部分和类定义部分。 类定义由类声明语句和类体组成。 类声明语句用来说明类的名称、访问权限及类的属性。 类体也由两部分组成:成员变量和成员方法。,3.1.2 Jav

3、a语句的种类,Java语句是Java标识符的集合,由关键字、常量、变量和表达式构成。简单的Java语句以分号“;”作为结束标志,单独的一个分号被看做一个空语句,空语句不做任何事情。复合结构的Java语句以大括号“”作为结束标志。Java语句一般分为说明性语句和操作性语句两种类型。,1说明性语句,Java的说明性语句包含包和类引入语句、声明类语句、声明变量语句、声明对象语句等。例如:import java.applet.Applet; /包引入语句public class GetSquare extends Applet;/声明类语句,2操作性语句,Java的操作性语句包含表达式语句、复合语句、

4、选择语句和循环语句、跳转语句等。Java规定所有的操作性语句必须放在成员方法中。 下面介绍表达式语句与复合语句的构成,其他操作性语句将分别在后面介绍。,1) 表达式语句,在表达式后边加上分号“;”,就是一个表达式语句。经常使用的表达式语句有赋值语句和方法调用语句。表达式语句是最简单的语句,它们被顺序执行,完成相应的操作。例如:int k, i=3, j=4;k=i+j;System.out.println(“k=“+k);它们是三个表达式语句。,2)复合语句,复合语句也称为块(block)语句,是包含在一对大括号“”中的任意语句序列。与其它语句用分号作结束符不同,复合语句右括号“”后面不需要分

5、号。尽管复合语句含有任意多个语句,但从语法上讲,一个复合语句被看作一个简单语句。,例3.2 复合语句示例,class Block public static void main(String args) int k, i=3, j=4;k=i+j;System.out.println(“k=“+k);float f;f=j+4.5F;i+;System.out.println(“f=“+f);System.out.println(“i=“+i);,3.2 选择语句,在复合语句中必须逐行执行每条命令。 能否改变程序执行的顺序呢? 利用选择语句结构就可以根据条件控制程序流程,改变程序执行的顺序。,

6、3.2.1 单分支选择语句(if语句),if语句的语法格式为:if (条件表达式)s1语句; 这是最简单的单分支结构。条件表达式的值为true,就执行s1语句,否则就忽略s1语句。s1语句可以是复合语句。,3.2.2 二分支选择语句(ifelse语句),if语句通常都与else语句配套使用,形成二分支结构。它的语法格式为:if (条件表达式)s1语句;elses2语句; 当条件表达式的值为true,就执行s1语句,忽略else和s2语句;否则,条件表达式的值为false,程序忽略s1语句,执行else后面的s2语句。s1和s2都可以是复合语句。,例3.3 比较两个数的大小并按升序输出,clas

7、s C1 public static void main(String args) double d1=23.4;double d2=35.1;if(d2=d1) System.out.println(d1);System.out.println(d2);elseSystem.out.println(d2);System.out.println(d1); ,比较两个数的大小并按升序输出,运行结果如图所示 :,3.2.3 多分支选择语句(ifelse语句),对于 超过二分支选择的情况,可以嵌套使用ifelse语句。它的语法格式为:if (条件表达式1)s1语句;else if (条件表达式2)s

8、2语句;elses3语句;,例3.4 下面是一个用if.else语句构造多分支程序的例子,判断某一年是否为闰年。,public class LeapYear public static void main(String args) boolean leap;int year=1989;if (year%4=0 ,year=2000; / 方法2if (year%4!=0)leap=false;else if (year%100!=0)leap=true;else if (year%400!=0)leap=false;elseleap=true;if (leap=true)System.out.

9、println(year+“ 年是闰年“);elseSystem.out.println(year+“ 年不是闰年“);,year=2050; / 方法3if (year%4=0) if (year%100=0) if (year%400=0)leap=true;elseleap=false;elseleap=false;elseleap=false;,if (leap=true)System.out.println(year+“ 年是闰年“);elseSystem.out.println(year+“ 年不是闰年“); 结果如图:,运行结果显示:,3.2.4 开关语句(switch语句),开

10、关语句switch的语法格式为:switch (表达式) case 常量1:语句1;break;case 常量2:语句2;break;default:语句n;,使用开关语句时,注意以下几点:,case后面的常量必须是整数或字符型,而且不能有相同的值; 通常在每一个case中都应使用break语句提供一个出口,使流程跳出开关语句。否则,在第一个满足条件case后面的所有语句都会被执行,这种情况叫做落空。看下面分别加上和去掉break语句的例子。,例3.5 switch语句的使用,有break语句,public class W1 public static void main(String arg

11、s) int c=28;switch (c10?1:c25?2:c35?3:4) case 1:System.out.println(“ “+c+“ 有点冷“);break;case 2:System.out.println(“ “+c+“ 正合适“);break;case 3:,System.out.println(“ “+c+“ 有点热“);break;default:System.out.println(“ “+c+“ 太热了“); 结果如图:,运行结果显示:,例3.6 switch语句的使用,无break语句。,public class W2 public static void ma

12、in(String args) int c=28;switch (c10?1:c25?2:c35?3:4) case 1: System.out.println(“ “+c+“ 有点冷“);case 2: System.out.println(“ “+c+“ 正合适“);case 3: System.out.println(“ “+c+“ 有点热“);default: System.out.println(“ “+c+“ 太热了“); ,switch语句的使用,无break语句。输出结果如图所示:,3.3 循环语句,Java中提供的循环语句有:确定次数循环(for)条件循环(while)先执行

13、后判定循环(do),3.3.1 确定次数循环语句(for循环),如果希望程序的一部分内容按固定的次数重复执行,通常可以使用for循环。for循环采用一个计数器控制循环次数,每循环一次计数器就加1,直到完成给定的循环次数为止。,例3.7 该程序对一维数组中的每个元素赋值,然后按逆序输出。,public class A2 public static void main(String args) int I;int a=new int5;for (i=0; i=0; i-)System.out.println(“a“+i+“ = “+ai);,程序对一维数组中的每个元素赋值,然后按逆序输出,结果如图

14、所示:,例3.8 按5度的增量打印出一个从摄氏度到华氏度的转换表。,class CtoF public static void main (String args) int fahr,cels;System.out.println(“摄氏度 华氏度“);for (cels=0; cels=40; cels+=5) fahr=cels*9/5+32;System.out.println(“ “+cels+“ “+fahr); ,输出结果如图所示 :,以上得出:,for循环的语法格式为:for (表达式1; 表达式2; 表达式3)循环体其中表达式1指出计数器的初值,是一个赋值语句;表达式2指出循环

15、结束条件,是一个逻辑表达式;表达式3指出计数器每次的增量,是一个赋值语句。,3.3.2 先判定后执行循环语句( while循环),例3.9 下面这个程序可接受从键盘输入的数字1、2、3,并显示得到的奖品;如果输入其它数字或字符显示“没有奖品给你!”。其中使用了开关语句和while循环语句。输出结果如图所示。,import java.io.*;class GetBonus public static void main(String args) throws IOException char ch;System.out.println(“按 1/2/3数字键可得大奖!“);System.out.

16、println(“按空格键后回车可退出循环操作.“);while (ch=(char)System.in.read()!= ) System.in.skip(2); / 跳过回车键switch (ch) case 1:,程序代码:,System.out.println(“你得到一辆车!“);break;case 2:System.out.println(“你得到一台彩电!“);break;case 3:System.out.println(“你得到一台冰箱!“);break;default:System.out.println(“没有奖品给你!“); ,以上得出:,while循环的语法格式为:

17、while (条件表达式) 循环体 其中while是关键字。每次循环之前都要计算条件表达式,其值为true时,就执行一次循环体中的语句,然后再计算条件表达式,决定是否再次执行循环体中的语句;如果条件表达式的值为false时,就跳出循环体,执行循环体下面的语句。,3.3.3先执行后判定循环语句(do while循环),dowhile循环与while循环相反,是先执行循环体中的语句,再计算while后面的条件表达式,若条件表达式值为false则跳出循环,否则继续下一轮循环。 什么时候使用dowhile循环呢?有些情况下,不管条件表达式的值是为true还是false,你都希望把指定的语句至少执行一次

18、,那么就应使用dowhile循环,看下面的例子。,例3.10 求12+100之和,class Sum public static void main(String args) int n=1;int sum=0;do sum+=n+;while (n=100);System.out.println(“1+2.+100 =“+sum); ,输出结果:,以上得出:,归纳dowhile循环的语法格式为:do 循环体 while (条件表达式); 其中do、while是关键字。程序首先执行do下面的循环体,然后计算while后面条件表达式的值,如果其值为true,则重复执行循环体,否则,就结束循环。,

19、3.4 总结提高,3.4.1 嵌套使用的循环语句 例3.11 分别用while、do和for循环语句实现累计求和。输出结果如图所示。,public class Sum1 public static void main(String args) int n=10, sum=0;while (n0) sum=0;for (int i=1; i=n; i+)sum+=i;System.out.println(“前“+n+“个数的总和为:“+sum);n-; ,程序代码:,3.4.2 嵌套使用的选择和循环语句,例3.12嵌套使用ifelse语句、ifelse ifelse语句和for循环语句的实例。,

20、public class 嵌套语句 public static void main(String args) int 学生 = 55,65,75,85,95; for(int i=0;i=60) System.out.println(“学生“+i+“通过!“);else System.out.println(“学生“+i+“ 未通过!“);for(int i=0;i=90) System.out.println(“学生“+i+“学成绩为 A!“);else if(学生i=80) System.out.println(“学生“+i+“数学成绩为 B!“);else if(学生i=70) Syst

21、em.out.println(“学生“+i+“数学成绩为 C!“);else if(学生i=60) System.out.println(“学生“+i+“数学成绩为 D!“);else System.out.println(“学生“+i+“数学成绩为 F!“); ,程序代码:,3.5 知识扩展,本节主要介绍三种跳转语句:break、continuereturn,3.5.1 break语句,例3.13 break语句的使用。输出结果如图所示。,class B public static void main(String args) boolean test=true;int i=0;while

22、(test) i=i+2;System.out.println(“i=“+i);if (i=10)break;System.out.println(“ i为“+i+“时循环结束“); ,程序代码:,3.5.2 带标号的break语句,标号是标记程序位置的标识符。break语句只能跳转到循环语句下面的第一条语句上,而带标号的break语句可直接跳转到标号处。 它的语法格式为:标识符:.break 标识符;,例3.14 带标号的break语句的使用。输出结果如图:,class B1 public static void main(String args) throws java.io.IOExce

23、ption char ch;lab1: / 此处为标号标识符for (int i=0; i4; i+)for (int j=0; j4; j+) ch=(char)System.in.read();System.in.skip(2);if (ch=b)break lab1;/跳到标号标识符处if (ch=c)System.out.println(“继续“);System.out.println(“结束两重循环“); ,程序代码:,3.5.3 continue语句,continue语句只能用在循环结构中,它跳过循环体中尚未执行的语句,重新开始下一轮循环,从循环体第一个语句开始执行。,例3.15

24、下面的程序可以输出19中除6以外所有偶数的平方值。 输出结果如图:,class C2 public static void main(String args) for (int i=2;i=9;i+=2) if (i=6)continue; System.out.println(i+“ 的平方 = “+i*i); ,程序代码:,带标号的continue语句:,Java也支持带标号的continue语句,它通常用在嵌套循环的内循环中,你可以用标号标出你想跳到哪一条语句继续重复执行程序。它的语法格式为:标识符:.continue 标识符;,例3.16 带标号的continue语句的使用。输出结果如

25、图所示:,class C3public static void main(String args) lab1:for (int i=1; i3) System.out.println(“Continue“);continue lab1;System.out.println(“i=“+i+“ j=“+j); ,程序代码:,3.5.4 return语句,return语句用于方法的返回上,当程序执行到return语句时,终止当前方法的执行,返回到调用这个方法的语句。return语句通常位于一个方法体的最后一行,有带参数和不带参数两种形式,带参数形式的return语句退出该方法并返回一个值。 带参数的

26、return语句格式为:return 表达式,例3.17 带参数的return语句的使用。输出结果如图所示 :,class CircleArea final static double PI=3.14159;public static void main(String args) double r1=8.0, r2=5.0;System.out.println(“半径为“+r1+“的圆面积“+area(r1);System.out.println(“半径为“+r2+“的圆面积“+area(r2);static double area(double r) return (PI*r*r); ,程序

27、代码:,上机练习,1.试编写一个程序,将1-500间能同时被2,5,7整除的数输出出来,上机运行其结果。 2.编写程序,根据考试成绩的等级打印出百分制分数段。设A为90分以上、B为80分以上、C为70分以上、D为60分以上、E为59分以下。要求在程序中使用开关语句。上机查看运行结果是否符合设计要求。 3.编写程序,从10个数中找出最大值,上机运行其结果。 4.编写程序,计算n的阶乘(n!),设n10,上机运行其结果。 5.编写程序,计算数学常数e的值,e=1+1/1!+1/2!+1/3!+,上机运行其结果。,6.编写程序,输出以下数据: N 10*N 100*N 1000*N 1 10 100

28、 1000 2 20 200 2000 3 30 300 3000 4 40 400 4000 5 50 500 5000 上机运行,看结果是否符合要求。 7.编写程序,列出乘法口诀,并运行其结果。 8.编写程序,输出1100间的所有奇数,并上机运行其结果。,9.上机查看以下程序的输出结果是什么? 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); ,10.上机查看以下程序的输出结果是什么? public class Test2 public static void main(String args) int count=1;while(count=10) System.out.println(count%2=1?“*“: “+“);+count; ,11.完整下面的程序,利用break语句和带标号的break语句分别退出一重循环和二重循环。并上机查看其运行结果。 for (i=0; i10; i+) int j=i*10 while(j100) if (j=10) break; j=j+5; ,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报