周Java语句及其控制结构.ppt

上传人:新** 文档编号:571476781 上传时间:2024-08-11 格式:PPT 页数:74 大小:947.05KB
返回 下载 相关 举报
周Java语句及其控制结构.ppt_第1页
第1页 / 共74页
周Java语句及其控制结构.ppt_第2页
第2页 / 共74页
周Java语句及其控制结构.ppt_第3页
第3页 / 共74页
周Java语句及其控制结构.ppt_第4页
第4页 / 共74页
周Java语句及其控制结构.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《周Java语句及其控制结构.ppt》由会员分享,可在线阅读,更多相关《周Java语句及其控制结构.ppt(74页珍藏版)》请在金锄头文库上搜索。

1、第3章Java语句及其控制结构3.1Java程序结构3.2选择语句3.3循环语句3.4跳转语句习题例3.1下面程序范例说明Java程序的构成importjava.applet.Applet;importjava.awt.*;publicclassGetSquareextendsAppletLabellabel1;publicvoidinit()label1=newLabel(前个数的平方);add(label1);3.1Java程序结构publicvoidpaint(Graphicsg)for(inti=0;i=d1)System.out.println(d1);System.out.prin

2、tln(d2);elseSystem.out.println(d2);System.out.println(d1);图3.1对于复杂的情况,可以嵌套使用ifelse语句。它的语法格式为:if(条件表达式1)s1语句;elseif(条件表达式2)s2语句;elses3语句;在这里依次计算条件表达式,如果某个条件表达式的值为true,就执行它后面的语句,其余部分被忽略;所有表达式的值都为false,就执行最后一个else后的s3语句。s1、s2和s3都可以是复合语句。3.2.3ifelse复合结构if() s1;if() s2;else s3;if()if() s2;else s3;if()if(

3、) s2;else s3;?例3.4下面是一个用ifelse语句构造多分支程序的例子,判断某一年是否为闰年。闰年的条件是符合下面二者之一:能被4整除,但不能被100整除;能被400整除。输出结果如图3.2所示。publicclassLeapYearpublicstaticvoidmain(Stringargs)booleanleap;intyear=1989;if(year%4=0&year%100!=0)|(year%400=0)/方法1System.out.println(year+年是闰年);elseSystem.out.println(year+年不是闰年);year=2000;/方法

4、2if(year%4!=0)leap=false;elseif(year%100!=0)leap=true;elseif(year%400!=0)leap=false;elseleap=true;if(leap=true)System.out.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)Sy

5、stem.out.println(year+年是闰年);elseSystem.out.println(year+年不是闰年);图3.2方法1用一个逻辑表达式包含了所有的闰年条件;方法2使用了ifelse语句的复合形式;方法3则通过大括号对ifelse进行匹配来实现闰年的判断。可以根据程序对比这3种方法,体会其中的联系和区别,在不同的场合选用适当的方法。虽然嵌套的条件语句可实现多个分支处理,但嵌套太多时容易出错和混乱,这时可以使用开关语句switch处理。实际上开关语句switch也是一种ifelse结构,不过它使你在编程时很容易写出判断条件,特别是有很多条件选项的时候。3.2.4switch开

6、关语句开关语句switch的语法格式为:switch(表达式)case常量1:语句1;break;case常量2:语句2;break;.default:语句n;其中switch、case、default是关键字,default子句可以省略。开关语句先计算表达式,然后将表达式值与各个常量比较,如果表达式值与某个常量相等,就执行该常量后面的语句;如果都不相等,就执行default下面的语句。如果无default子句,就什么都不执行,直接跳出开关语句。使用开关语句时,注意以下几点:case后面的常量必须是整数或字符型,而且不能有相同的值;通常在每一个case中都应使用break语句提供一个出口,使流

7、程跳出开关语句。否则,在第一个满足条件case后面的所有语句都会被执行,这种情况叫做落空。例3.5有break语句的switch结构示例。本程序当温度变量c小于10时,显示“有点冷”;c小于25时,显示“合适”;c大于25且小于35时,显示“有点热”;c大于35时,显示“太热了”。输出结果为c等于28时的情况如图3.3所示。图3.3publicclassW1publicstaticvoidmain(Stringargs)intc=28;switch(c10?1:c25?2:c35?3:4)case1:System.out.println(+c+有点冷);break;case2:System.o

8、ut.println(+c+合适);break;case3:System.out.println(+c+有点热);break;default:System.out.println(+c+太热了);例3.6无break语句的switch结构示例,输出结果如图3.4所示。图3.4publicclassW2publicstaticvoidmain(Stringargs)intc=28;switch(c10?1:c25?2:c35?3:4)case1:System.out.println(+c+有点冷);case2:System.out.println(+c+合适);case3:System.out.

9、println(+c+有点热);default:System.out.println(+c+太热了);循环可使程序根据一定的条件重复执行某一部分程序代码,直到满足终止循环条件为止。Java中提供的循环语句有:确定次数循环(for)、条件循环(while)、先执行后判定循环(do)。3.3循环语句如果希望程序的一部分内容按固定的次数重复执行,通常可以使用for循环。for循环采用一个计数器控制循环次数,每循环一次计数器就计数,直到完成给定的循环次数为止。3.3.1for循环语句例3.7对一维数组中的每个元素赋值,然后按逆序输出,结果如图3.5所示。publicclassA2publicstati

10、cvoidmain(Stringargs)inti;inta=newint5;for(i=0;i=0;i-)System.out.println(a+i+=+ai);图3.5例3.8按5的增量打印出一个从摄氏度到华氏度的转换表,输出结果如图3.6所示。classCtoFpublicstaticvoidmain(Stringargs)intfahr,cels;System.out.println(摄氏度华氏度);for(cels=0;cels=40;cels+=5)fahr=cels*9/5+32;System.out.println(+cels+fahr);图3.6for循环的语法格式为:fo

11、r(表达式1;表达式2;表达式3)循环体其中表达式1可以给出计数器的初值,是一个赋值语句;表达式2指出循环结束条件,是一个逻辑表达式;表达式3指出计数器每次的增量,是一个赋值语句。注意:计数器可在for语句之前定义,也可在循环括号中定义。计数器增量为1时常写成增量运算的形式,以加快运算速度。根据需要,增量可以大于或小于1。增量计算也可以放在循环体中进行,即把表达式3移到循环体内的适当位置,原位置为空。使用循环语句时常常会遇到死循环的情况,也就是无限制地循环下去。所以在使用for循环时,要注意初值、终值和增量的搭配。终值大于初值时,增量应为正值,终值小于初值时,增量应为负值。编程时必须密切关注计

12、数器的改变,这是实现正常循环避免陷入死循环的关键。public class Welcome public static void main(String args ) int a=5,8,12;for(int x: a) System.out.println(x);foreach循环 java 1.5开始while循环不像for循环那么复杂,while循环只需要一个条件判断语句,便可以进行循环操作。3.3.2while循环语句例3.9下面这个程序可接受从键盘输入的数字1、2、3,并显示得到的奖品;如果输入其他数字则显示字符“没有奖品给你!”。其中使用了开关语句和while循环语句。输出结果如图

13、3.7所示。importjava.io.*;classGetBonuspublicstaticvoidmain(Stringargs)throwsIOExceptioncharch;System.out.println(按1/2/3数字键可得大奖!);System.out.println(按空格键后回车可退出循环操作。);while(ch=(char)System.in.read()!=)System.in.skip(2);/跳过回车键switch(ch)case1:System.out.println(你得到一辆车!);break;case2:System.out.println(你得到一台

14、彩电!);break;case3:System.out.println(你得到一台冰箱!);break;default:System.out.println(没有奖品给你!);图3.7while循环的语法格式为:while(条件表达式)循环体其中while是关键字。每次循环之前都要计算条件表达式,其值为true时,就执行一次循环体中的语句,然后再计算条件表达式,决定是否再次执行循环体中的语句;如果条件表达式的值为false时,就跳出循环体,执行循环体下面的语句。注意:while循环中的条件表达式是逻辑表达式,所以循环体中一定要有改变条件表达式值的语句,使条件表达式的值有机会变为false,否则

15、会陷入死循环。dowhile循环与while循环相反,是先执行循环体中的语句,再计算while后面的条件表达式,若条件表达式值为false则跳出循环;否则继续下一轮循环。有些情况下,不管条件表达式的值是为true还是false,都希望把指定的语句至少执行一次,那么就应使用dowhile循环。3.3.3dowhile循环语句例3.10求12+100之和,输出结果如图3.8所示。classSumpublicstaticvoidmain(Stringargs)intn=1;intsum=0;dosum+=n+;while(n0)sum=0;for(inti=1;i=10)break;System.o

16、ut.println(i为+i+时循环结束);图3.10标号是标记程序位置的标识符。break语句只能跳转到循环语句下面的第一条语句上,而带标号的break语句可直接跳转到标号处。正常的break只退出一重循环,如果要退出多重循环,可以使用带标号的break语句。它的语法格式为:标识符:break标识符;3.4.2带标号的break语句例3.13带标号的break语句的使用示例。运行该程序,正常情况下可从键盘接受16个输入字符,但当输入b按回车时,breaklab1语句就会结束二重循环。输出结果如图3.11所示。classB1publicstaticvoidmain(Stringargs)th

17、rowsjava.io.IOExceptioncharch;lab1:/此处为标号标识符for(inti=0;i4;i+)for(intj=0;j4;j+)ch=(char)System.in.read();System.in.skip(2);if(ch=b)breaklab1;/跳到标号标识符处if(ch=c)System.out.println(继续);System.out.println(结束两重循环);图3.11continue语句只能用在循环结构中,它跳过循环体中尚未执行的语句,重新开始下一轮循环,从循环体第一个语句开始执行。3.4.3continue语句例3.14下面的程序可以输出

18、19中除6以外所有偶数的平方值,输出结果如图3.12所示。classC2publicstaticvoidmain(Stringargs)for(inti=2;i=9;i+=2)if(i=6)continue;System.out.println(i+的平方=+i*i);图3.12Java也也支支持持带带标标号号的的continue语语句句,它通常用在嵌套循环的内循环中,可以用标号标出想跳到哪一条语句继续重复执行程序。其语法格式为:标识符:continue标识符;3.4.4带标号的continue语句例3.15带标号的continue语句的使用示例,输出结果如图3.13所示。classC3pub

19、licstaticvoidmain(Stringargs)lab1:for(inti=1;i=3;i+)for(intj=1;j3)System.out.println(Continue);continuelab1;System.out.println(i=+i+j=+j);图3.13例3.16求100200间的所有素数。该例通过一个嵌套的for循环来实现,输出结果如图3.14所示。publicclassFindpublicstaticvoidmain(Stringargs)System.out.println(*100200间的所有素数*);intn=0;outer:for(inti=101

20、;i200;i+=2)intk=15;for(intj=2;j=k;j+)if(i%j=0)continueouter;System.out.print(+i);n+;if(n0)System.out.println(第一);elseif(x-3)System.out.println(第二);elseSystem.out.println(第三);判断x的取值在什么范围内时将打印字符串“第二”?A.x0B.x-3C.x=-3D.x-33-3编写程序,根据考试成绩的等级打印出百分制分数段。设:A为90分以上,B为80分以上,C为70分以上,D为60分以上,E为59分以下。要求在程序中使用开关语句。

21、3-4编写程序,从10个数中找出最大值。3-5编写程序,计算n的阶乘(n!),设n10。3-6 编 写 程 序 , 计 算 数 学 常 数 e的 值 ,e=1+1/1!+1/2!+1/3!+。3-7编写程序,输出以下数据:N10N100N1000N110100100022020020003303003000440400400055050050003-8编写程序,输出乘法口诀。3-9编写程序,输出1100间的所有奇数。3-10以下程序的输出结果是什么?publicclassTest1publicstaticvoidmain(Stringargs)inty,x=1,total=0;while(x=

22、10)y=x*x;System.out.println(y);total+=y;+x;System.out.println(totalis+total);3-11以下程序的输出结果是什么?publicclassTest2publicstaticvoidmain(Stringargs)intcount=1;while(count=10)System.out.println(count%2=1?*:+);+count;3-12完成下面的程序,利用break语句和带标号的break语句分别退出一重循环和二重循环。for(i=0;i10;i+)intj=i*10;while(j100)if(j=10)break;j=j+5;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号