面向对象的程序设计-Java张白一第三版第3章ppt课件_第1页
面向对象的程序设计-Java张白一第三版第3章ppt课件_第2页
面向对象的程序设计-Java张白一第三版第3章ppt课件_第3页
面向对象的程序设计-Java张白一第三版第3章ppt课件_第4页
面向对象的程序设计-Java张白一第三版第3章ppt课件_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 程序流程控制 第3章 程序流程控制 3.1 选择构造程序设计选择构造程序设计 3.2 循环构造程序设计循环构造程序设计 3.3 break和和continue语句语句 第3章 程序流程控制 3.1 选择构造程序设计选择构造程序设计Java言语提供了两条根本的分支选择语言语提供了两条根本的分支选择语句:句:if语句和语句和switch语句。用这两条语句可以语句。用这两条语句可以构成以下三种方式的选择构造:构成以下三种方式的选择构造:(1) 双分支选择构造。由双分支选择构造。由if/else语句构成,语句构成,用来断定一个条件用来断定一个条件(布尔表达式布尔表达式),当条件为,当条件为真真

2、(true)时执行一个操作,当条件为假时执行一个操作,当条件为假(false)时执行另一个操作。时执行另一个操作。第3章 程序流程控制 (2) 单分支选择构造。由省略了else的if语句构成,在条件为真时执行一个操作,在条件为假时那么跳过该操作。(3) 多分支选择构造。由switch语句构成,根据表达式的值来决议执行许多不同操作中的某一个操作。当然,运用嵌套的if语句也可以实现多分支选择构造。第3章 程序流程控制 3.1.1 if语句语句if语句是构造分支选择构造程序的根本语句。运用语句是构造分支选择构造程序的根本语句。运用if语语句的根本方式,可构造双分支选择构造程序;运用省略了句的根本方式

3、,可构造双分支选择构造程序;运用省略了else的的if语句可构造单分支选择构造程序;运用嵌套的语句可构造单分支选择构造程序;运用嵌套的if语句语句可构造多分支选择构造程序。下面分别讲述这几种方式。可构造多分支选择构造程序。下面分别讲述这几种方式。第3章 程序流程控制 1if语句的根本方式语句的根本方式if语句的根本方式如下:语句的根本方式如下:if(布尔表达式布尔表达式)语句区块语句区块1else 语句区块语句区块2其执行流程如图其执行流程如图3.1所示。所示。第3章 程序流程控制 图3.1 if语句的根本方式 第3章 程序流程控制 阐明:(1) 这里的“布尔表达式为关系表达式或逻辑表达式(下

4、同)。(2) “语句区块是指一条语句或多条语句。当为多条语句时,一定要用一对花括号(“和“)将其括起,使之成为一条复合语句。例如,在下面程序的if语句中,关系表达式grade=60为true时,执行“语句区块1,它由两条语句构成,所以运用了一对花括号使其构成一条复合语句,否那么,编译时会指出语法错误;而当关系表达式grade=60为false时,执行“语句区块2,它只需一条语句,所以可以省去花括号。第3章 程序流程控制 【例如程序C3_1.java】 判别给出的一个成果,输出“经过或“不及格。public class C3_1 public static void main(String ar

5、gs) int grade; grade=86; /读者在调试时也可赋一个小于60的成果试试看/* 此处最好运用一个数据输入语句。但Java从键盘读取整数或浮点数时要运用类、对象、方法等知识。限于我们目前所学,此处用了一个赋值语句,待读者学习了第4章后,可对该程序进展相应的修正,使其适用于各种情况 */第3章 程序流程控制 if(grade=60) System.out.print(“经过,成果是:); System.out.println(grade); else System.out.println(“不及格); 该程序的运转结果如下:经过,成果是:86第3章 程序流程控制 请留意该程序的

6、缩进格式。这种缩进格式虽然不是必需的,但由于它突出了程序的构造,大大提高了程序的明晰度和可读性,故国际上提倡和引荐这种程序书写风格。【例如程序C3_2.java】 比较两个数的大小。import java.applet.Applet;import java.awt.Graphics;public class C3_2 extends Applet public void paint(Graphics g) double d1=43.4; 第3章 程序流程控制 double d2=85.3; if(d1=d2) g.drawString(d1+“ = +d2,25,25); else g.dra

7、wString(d1+“ +d2,25,25);该程序的运转结果如下:43.485.3第3章 程序流程控制 2. 省略了省略了else子句的子句的if语句语句在在if语句中,可以省略语句中,可以省略else子句以构成单分支构造。其子句以构成单分支构造。其方式如下:方式如下:if(布尔表达式布尔表达式)语句区块语句区块其执行流程如图其执行流程如图3.2所示。所示。第3章 程序流程控制 图3.2 if语句中省略了else子句的方式 第3章 程序流程控制 【例如程序C3_3.java】 判别给出的一个成果,当成果小于60时,输出“未经过及详细成果,其他情况时什么也不输出。public class C

8、3_3 public static void main(String args) int grade; grade=56; /读者在调试时也可赋一个等于或大于60的成果试试看 if(grade=90)System.out.println(“成果:优); else if(grade=80)System.out.println(“成果:良); else if(grade=70)System.out.println(成果:中等);第3章 程序流程控制 else if(grade=60)System.out.println(“成果:及格); else System.out.println(“成果:不及

9、格); 该程序的运转结果如下:成果: 中等第3章 程序流程控制 4. 运用运用if嵌套时的本卷须知嵌套时的本卷须知(1) Java编译器将编译器将else与离它最近的与离它最近的if组合在一同,除非组合在一同,除非用花括号用花括号“才干指定不同的匹配方式。例如,某编程者才干指定不同的匹配方式。例如,某编程者的意图是当的意图是当x和和y都大于都大于6时,输出时,输出“设备正常的信息;而设备正常的信息;而当当x不大于不大于6时,输出时,输出“设备出错的信息。为此,他写出了设备出错的信息。为此,他写出了如下所示的程序。如下所示的程序。【例如程序【例如程序C3_5.java】 if嵌套的运用。嵌套的运

10、用。public class C3_5 public static void main(String args) int x,y;第3章 程序流程控制 x=3;y=14; if(x6) if(y6) System.out.println(“设备正常); else System.out.println(“设备出错); 该程序在执行时,只需当x6且y6时才输出“设备出错的信息,而当x不大于6时什么信息也不输出。这是由于该程序中有两个if而只需一个else,这时,这个else将与离它最近的if配对,而与书写中的对齐方式无关。实践上,该程序的if嵌套构造图如图3.4所示,且由于x=3,故程序运转后没有

11、输出,与编程者的意图相悖。假设希望if嵌套按编程者的意图执行,那么必需用花括号将内嵌的if构造括起来,即写为第3章 程序流程控制 if(x6) if(y6) System.out.println(“设备正常); else System.out.println(设备出错);这样的if嵌套构造图如图3.5所示。用花括号将第二个if构造括起,即可向编译器阐明它是一个省略了else的if语句,而程序中的else与第一个if构造相对应。第3章 程序流程控制 图3.4 程序C3_5的if嵌套构造图 第3章 程序流程控制 图3.5 程序C3_5改写后的if嵌套构造图 第3章 程序流程控制 (2) 在嵌套的i

12、f语句中,同样要留意每个“语句区块只能是“一个语句或一个复合语句,当“语句区块中包含多条语句时,必需用花括号将这些语句括起来,使其构成一条复合语句,否那么会导致语法错误或输出错误。例如,下面两个程序片段中左侧的嵌套if语句在x6时,不论y的值如何,总会执行第二条输出语句;而右侧的嵌套if语句只需当x和y都大于6时,才执行两条输出语句,否那么,一条输出语句也不执行。这两个程序片段的if嵌套构造如图3.6所示。第3章 程序流程控制 if(x6) if(x6) if(y6) if(y6) System.out.print(x=+x); System.out.print(x=+x); System.o

13、ut.print(y=+y); System.out.print(y=+y); 第3章 程序流程控制 图3.6 上述两个程序片段的if嵌套构造 第3章 程序流程控制 3.1.2 switch语句语句当要从多个分支中选择一个分支去执行时,虽然可用当要从多个分支中选择一个分支去执行时,虽然可用if嵌套语句来处理,但当嵌套层数较多时,程序的可读性大嵌套语句来处理,但当嵌套层数较多时,程序的可读性大大降低。大降低。Java提供的提供的switch语句可清楚地处置多分支选择问语句可清楚地处置多分支选择问题。题。switch语句根据表达式的值来执行多个操作中的一个,语句根据表达式的值来执行多个操作中的一个

14、,其格式如下:其格式如下:switch(表达式表达式) case 值值1:语句区块:语句区块1;break; /分支分支1 case 值值2:语句区块:语句区块2;break; /分支分支2 case 值值n:语句区块:语句区块n;break; /分分支支n default : 语句区块语句区块n+1; /分支分支n+1switch语句的执行流程如图语句的执行流程如图3.7所示。所示。第3章 程序流程控制 图3.7 switch语句的执行流程 第3章 程序流程控制 阐明:(1) switch后面表达式的类型可以是byte、char、short和int(不允许是浮点数类型和long型)。(2)

15、case后面的值1、值2、值n是与表达式类型一样的常量,但它们之间的值应各不一样,否那么就会出现相互矛盾的情况。case后面的语句块可以不用花括号括起。(3) default语句可以省去不要。(4) 当表达式的值与某个case后面的常量值相等时,就执行此case后面的语句块。(5) 假设去掉break语句,那么执行完第一个匹配case后的语句块后,会继续执行其他case后的语句块,而不论这些语句块前的case值能否匹配。第3章 程序流程控制 【例如程序C3_6.java】 判别成果等级。import java.applet.Applet;import java.awt.Graphics;pub

16、lic class C3_6 extends Applet public void paint(Graphics g) int k; int grade=86; k=grade/10; switch(k) case 10: case 9: g.drawString(成果:优,25,25); break;第3章 程序流程控制 case 8: case 7: g.drawString(“成果:良,25,25); break; case 6: g.drawString(“成果:及格。,25,25); break; default: g.drawString(“成果:不及格。,25,25); 该程序的

17、运转结果如下:成果:良第3章 程序流程控制 3.1.3 条件运算符对于一些简单的if/else语句,可用条件运算符来替代。例如,假设有以下if语句:if (xy) m=x;else m=y;那么可用下面的条件运算符来替代:m=(xy)?x :y其中,“?:被称为条件运算符;“(xy)?x :y被称为条件表达式。条件表达式的语义是:假设(xy)条件为true,那么表达式的值取x的值,否那么表达式的值取y的值。条件表达式的普通方式为:布尔表达式1?表达式2 :表达式3第3章 程序流程控制 在条件表达式中:(1) 表达式2和表达式3的类型必需一样。(2) 条件运算符的执行顺序是:先求解表达式1,假设

18、值为true那么执行表达式2,此时表达式2的值将作为整个条件表达式的值;否那么求解表达式3,此时表达式3的值将作为整个条件表达式的值。在实践运用中,经常将条件运算符与赋值运算符结合起来,构成赋值表达式,以替代比较简单的if/else语句。条件运算符的优先级高于赋值运算符,因此,其结合方向为“自右至左。第3章 程序流程控制 【例如程序C3_7.java】 条件运算符的运用。public class C3_7 public static void main(String args) int x,y,z,a,b; a=1; b=2; x=(ab) ? a : b; y=(a!=b) ? a : b;

19、 z=(ab) ? a : b; System.out.print(tx=+x);第3章 程序流程控制 System.out.print(“ty=+y); System.out.println(“tz=+z); 该程序的运转结果如下:x=2 y=1 z=1第3章 程序流程控制 3.2 循环构造程序设计循环构造程序设计循环语句的作用是反复执行一段程序代循环语句的作用是反复执行一段程序代码,直到满足终止条件为止。码,直到满足终止条件为止。Java言语提供言语提供的循环语句有的循环语句有while语句、语句、do-while语句和语句和for语句。这些循环语句各有其特点,用户可根语句。这些循环语句各

20、有其特点,用户可根据不同的需求选择运用。据不同的需求选择运用。第3章 程序流程控制 3.2.1 while语句语句while语句的普通格式为:语句的普通格式为:while(布尔表达式布尔表达式)循环体语句区块循环体语句区块while语句中各个成分的执行次序是:先判别布尔表达语句中各个成分的执行次序是:先判别布尔表达式的值,假设值为假,那么跳过循环体,执行循环体后面式的值,假设值为假,那么跳过循环体,执行循环体后面的语句;假设布尔表达式的值为的语句;假设布尔表达式的值为true,那么执行循环体中的,那么执行循环体中的语句区块,然后再回去判别布尔表达式的值,如此反复,语句区块,然后再回去判别布尔表

21、达式的值,如此反复,直至布尔表达式的值为直至布尔表达式的值为false,跳出,跳出while循环体为止。其执循环体为止。其执行流程如图行流程如图3.8所示。所示。第3章 程序流程控制 图3.8 while语句的执行流程 第3章 程序流程控制 【例如程序C3_8.java】 打印数字15。public class C3_8 public static void main(String args) int counter=1; /循环变量及其初始值 while(counter=5) /循环条件 System.out.println(“counter=+counter); counter+; /循环

22、变量增值 第3章 程序流程控制 该程序的运转结果如下:counter=1counter=2counter=3counter=4counter=53.2.2 do-while语句do-while语句的普通格式为:do循环体语句区块while(布尔表达式) 第3章 程序流程控制 图3.9 do-while语句的执行流程第3章 程序流程控制 do-while语句中各个成分的执行次序是:先执行一次循环体语句区块,然后再判别布尔表达式的值,假设值为false,那么跳出do-while循环,执行后面的语句;假设值为true,那么再次执行循环体语句区块。如此反复,直到布尔表达式的值为false,跳出do-w

23、hile循环为止。其执行流程如图3.9所示。do-while循环语句与while循环语句的区别仅在于do-while循环中的循环体至少执行一次,而while循环中的循环体能够一次也不执行。第3章 程序流程控制 【例如程序C3_9.java】 计算从1开场的延续n个自然数之和,当其和值刚好超越100时终了,求这个n值。import java.applet.Applet;import java.awt.Graphics;public class C3_9 extends Applet public void paint(Graphics g) int n=0; /计数器变量 int sum=0;

24、/循环变量及其初始值第3章 程序流程控制 do n+; /计数器变量增1 sum+=n; /循环变量增值 while(sum=100); /循环条件 g.drawString(“sum=+sum,25,25); g.drawString(“n=+n,100,25); 该程序的运转结果如下:sum=105 n=14第3章 程序流程控制 3.2.3 for语句语句for语句的普通格式为:语句的普通格式为:for(初值表达式;布尔表达式;循环过程表达式初值表达式;布尔表达式;循环过程表达式)循环体程序语句区块循环体程序语句区块其中:其中:“初值表达式对循环变量赋初值;初值表达式对循环变量赋初值;“布

25、尔表达式布尔表达式用来判别循环能否继续进展;用来判别循环能否继续进展;“循环过程表达式完成修正循环过程表达式完成修正循环变量、改动循环条件的义务。循环变量、改动循环条件的义务。第3章 程序流程控制 图3.10 for语句的执行流程第3章 程序流程控制 for语句的执行流程见图3.10。其执行过程是:(1) 求解初值表达式。(2) 求解布尔表达式,假设值为真,那么执行循环体语句区块,然后再执行第(3)步;假设值为假,那么跳出循环语句。(3) 求解循环过程表达式,然后转去执行第(2)步。 第3章 程序流程控制 【例如程序C3_10.java】 求自然数1100之间一切奇数之和。public cla

26、ss C3_10 public static void main(String args) int sum=0,odd; for(odd=1;odd=100;odd+=2) sum +=odd; System.out.println(“sum=+sum+“ odd=+odd); 第3章 程序流程控制 该程序的运转结果如下:sum=2500 odd=101请思索输出的odd值为什么是101,而不是99,sum的输出值中能否加上了101。【例如程序C3_11.java】 求解Fibonacci数列1,1,2,3,5,8,的前36个数。分析该数列可以得到构造该数列的递推关系是:第3章 程序流程控制

27、将其写成如下的Java程序:public class C3_11 public static void main(String args) int f1=1, f2=1; /f1为第一项,即奇位项;f2为第二项,即偶位项 for( int i=1; i10) break; /布尔表达式写在了循环体内的if语句中 System.out.println(sum=+sum); 第3章 程序流程控制 该程序的运转结果如下: sum=55此外,在for语句头的构件中,“初值表达式和“循环过程表达式中还可以运用逗号运算符。这也是Java中独一运用逗号运算符的地方。第3章 程序流程控制 【例如程序C3_13

28、.java】 在for循环的初值表达式中运用逗号运算符。public class C3_13 public static void main(String args) int i,sum; for(i=1,sum=0;i10)break; /循环体改成了断定跳转语句 System.out.println(sum=+sum); 该程序的运转结果如下:sum=65第3章 程序流程控制 3.2.5 循环语句比较循环语句比较前面经过例如程序讲述了三种循环语句的用法。普通前面经过例如程序讲述了三种循环语句的用法。普通情况下,情况下,Java系统提供的三种循环语句是可以相互替代的,系统提供的三种循环语句是

29、可以相互替代的,尤其是对于那些确切地知道所需执行次数的循环。然而,尤其是对于那些确切地知道所需执行次数的循环。然而,由于由于for语句头中包含了控制循环所需求的各个构件,因此,语句头中包含了控制循环所需求的各个构件,因此,对于同样的问题,运用对于同样的问题,运用for循环编写的程序最简约明晰。假循环编写的程序最简约明晰。假设读者将求自然数设读者将求自然数110之和的问题分别用三种循环构造写之和的问题分别用三种循环构造写出,就可以清楚地看到这一现实。对于那些只知道某些语出,就可以清楚地看到这一现实。对于那些只知道某些语句要反复执行多次句要反复执行多次(至少执行一次至少执行一次),但不知道确切执行

30、次数,但不知道确切执行次数的问题,运用的问题,运用do-while循环会使程序更明晰。对于那种某些循环会使程序更明晰。对于那种某些语句能够要反复执行多次,也能够一次都不执行的问题,语句能够要反复执行多次,也能够一次都不执行的问题,运用运用while循环当然是最好了。循环当然是最好了。第3章 程序流程控制 3.2.6 循环控制要点循环控制要点进展循环控制主要有两种方法,一种是用计数器控制进展循环控制主要有两种方法,一种是用计数器控制循环,另一种是用标志控制循环。大多数循环构造程序是循环,另一种是用标志控制循环。大多数循环构造程序是利用计数器的原理来控制的。设计计数器控制循环的程序,利用计数器的原

31、理来控制的。设计计数器控制循环的程序,需求把握下面几个要点:需求把握下面几个要点:(1) 循环控制变量循环控制变量(或循环计数器或循环计数器)的名字,即循环变量的名字,即循环变量名。名。(2) 循环控制变量的初始值。循环控制变量的初始值。(3) 每执行一次循环,循环控制变量的增量每执行一次循环,循环控制变量的增量(或减量或减量)。(4) 测试循环控制变量的终值条件测试循环控制变量的终值条件(即能否继续进展循即能否继续进展循环环)。第3章 程序流程控制 经过仔细分析前面的例如程序可以看出,用三种不同的循环语句编写的程序都具有上述四个方面的内容,其中以for语句最为典型,它把一切这些构件都放在了f

32、or语句头中,图3.11明确地指出了这些方面。第3章 程序流程控制 图3.11 一个典型for语句头的组成构件 第3章 程序流程控制 用标志控制循环主要适用于那些事先无法知道循环次数的事务处置。例如统计选票就是这样一类问题,只知道有许多人参与投票,但不能确切地知道选票数。在这种情况下可以运用一个叫做标志值的特殊值作为“数据输入终了的标志,当用户将一切合法的数据都输入之后,可以输入这个标志值,表示最后一个数据曾经输入完了。循环控制语句得到这个标志值后,终了循环。标志控制循环通常也称做不确定循环,由于在循环开场执行之前并不知道循环的次数。下面的程序运用“#作为循环控制标志。第3章 程序流程控制 【

33、例如程序C3_15.java】 设有李、王、张三人竞选指点,由群众投票表决,试设计一个统计选票的程序。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class C3_15 public static void main(String args) throws IOException BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in); /上面一条语句是有关

34、键盘输入数据流的处置,字符在各对象之间的流动过程如图3.12所示第3章 程序流程控制 int Ltotal=0,Wtotal=0,Ztotal=0; char name; String c1; System.out.print(“enter letter L or W or Z name, # to end:); c1=keyin.readLine(); /从键盘上读取一个字符串赋给c1 name=c1.charAt(0);/ charAt(0)是从一个字符串中截取第0个字符的方法 while(name!=#) switch(name) case L:第3章 程序流程控制 case l: /李

35、姓人的得票,列出两个case分别处置大、小写字母 Ltotal=Ltotal+1; break; case W: case w:/王姓人的得票 Wtotal=Wtotal+1; break; case Z: case z: /张姓人的得票 Ztotal=Ztotal+1; break; /switch语句终了 System.out.print(“enter letter L or W or Z name ,# to end:); c1=keyin.readLine(); name=c1.charAt(0); /while循环终了第3章 程序流程控制 System.out.println(“ L

36、total=+Ltotal); System.out.println(“ Wtotal=+Wtotal); System.out.println(“ Ztotal=+Ztotal); 该程序运转时,可在NetBeans IDE的“输出窗口中经过键盘输入数据,输入过程及运转结果如图3.12所示。第3章 程序流程控制 图3.12 程序C3_15的运转结果 第3章 程序流程控制 图3.13显示了从键盘输入直到最后一个对象得到一个字符,字符在4个对象之间的流动过程。这4个对象是System.in、InputStreamReader的对象(无名对象)、keyin和c1。除了对象c1,其他3个对象都被画成

37、了一个管道的外形,它们在系统中担任传送字节和字符。这些对象被称做流对象,数据在它们当中按照一定的顺序流动。InputStreamReader的对象(无名对象)担任从键盘读入字节数据,这里读入了4个字节。对象keyin把无名对象的每个字节都转换成char类型的值。对象keyin的readLine()方法把换行符(/n)以前的一切字符都拷贝到c1字符串对象中,最后,对象c1的成员方法charAt()从字符串中取出第一个字符赋给name变量。 第3章 程序流程控制 图3.13 字符在各对象之间的流动过程 第3章 程序流程控制 3.2.7 循环嵌套循环嵌套循环嵌套是指在循环体内包含有循环语句的情形。循

38、环嵌套是指在循环体内包含有循环语句的情形。Java言语提供的三种循环构造可以本身嵌套,也可以相互言语提供的三种循环构造可以本身嵌套,也可以相互嵌套。循环嵌套时应该留意的是:无论哪种嵌套关系都必嵌套。循环嵌套时应该留意的是:无论哪种嵌套关系都必需保证每一个循环构造的完好性,不能出现交叉。需保证每一个循环构造的完好性,不能出现交叉。下面几种循环嵌套都是合法的方式。下面几种循环嵌套都是合法的方式。第3章 程序流程控制 第3章 程序流程控制 第3章 程序流程控制 【例如程序C3_16.java】 编程打印三角形数字图案。public class C3_16 public static void mai

39、n(String args) for(int i=1;i=10;i+) /外层for循环 for(int j=1;j=11-i;j+) /内嵌for循环 System.out.print(“ ); /内嵌for循环的循环体 for(int j=1;j=10) System.out.print(+i+“ ); else System.out.print(+i+“ ); /并列的内嵌for循环终了 System.out.println(“ ); /外层for循环终了 第3章 程序流程控制 该程序的运转结果如下:第3章 程序流程控制 【例如程序C3_17.java】 编写求解(即1!+2!+3!+7

40、!+8!)的程序。81nn!public class C3_17 public static void main(String args) int n=1,m,s,k=0; while(n=8) for(s=1,m=1;m=n;m+) s=s*m; /计算n!,结果存于s中 k=k+s; /计算前n项阶乘之和,结果存于k中 System.out.println(n+!=+s+ k=+k); n+; 第3章 程序流程控制 该程序的运转结果如下:1!=1 k=12!=2 k=33!=6 k=94!=24 k=335!=120 k=1536!=720 k=8737!=5040 k=59138!=40

41、320 k=46233第3章 程序流程控制 3.3 break和和continue语句语句Java言语提供了言语提供了4种转移语句:种转移语句:break、continue、return和和throw。转移语句的功能。转移语句的功能是改动程序的执行流程。本节只引见是改动程序的执行流程。本节只引见break和和continue两个转移语句。两个转移语句。break语句可以独语句可以独立运用,而立运用,而continue语句只能用在循环构造语句只能用在循环构造的循环体中。的循环体中。3.3.1 break语句语句break语句通常有不带标号和带标号两语句通常有不带标号和带标号两种方式:种方式:br

42、eak;break lab;其中:其中:break是关键字,是关键字,lab是用户定义的标是用户定义的标号。号。第3章 程序流程控制 break语句虽然可以独立运用,但通常主要用于switch构造和循环构造中,控制程序的执行流程转移。break语句的运用有以下三种情况:(1) break语句用在switch语句中,其作用是强迫退出switch构造,执行switch构造后的语句。这一功能已在3.1.2节中陈说过。第3章 程序流程控制 (2) break语句用在单层循环构造的循环体中,其作用是强迫退出循环构造,如图3.14所示。假设程序中有内外两重循环,而break语句写在内循环中,那么执行bre

43、ak语句只能退出内循环,而不能退出外循环。假想象要退出外循环,可运用带标号的break语句。(3) break lab语句用在循环语句中(必需在外循环入口语句的前方写上lab标号),可使程序流程退出标号所指明的外循环,如图3.15所示。第3章 程序流程控制 图3.14 break语句在单循环中的执行流程 第3章 程序流程控制 图3.15 break语句在双循环中的执行流程 第3章 程序流程控制 【例如程序C3_18.java】 求1100间的素数。素数也称为质数,是不能被从2开场到比它本身小1的任何正整数整除的自然数,如3、5、7等都是素数。处理该问题的算法可用伪代码描画如下:(1) 构造外循环得到一个1100之间的数i,为减少循环次数,可跳过一切偶数;(2) 构造内循环得到一个2之间的数j,调查i能否能被j整除,假设能整除那么i不是素数,终了内循环;(3) 内循环终了后判别j能否大于等于m+1,假设是,那么i必为素数,打印输出之;否那么,再次进展外循环。第3章 程序流程控制 将上述伪代码写成Java程序如下:public class C3_18 public s

温馨提示

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

评论

0/150

提交评论