程序控制语句_第1页
程序控制语句_第2页
程序控制语句_第3页
程序控制语句_第4页
程序控制语句_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 程序控制语句 主要内容:n编程语言使用控制语句来产生执行流,从而完成程序状态的改变,如程序顺序执行和分支执行。Java程序控制语句分为三类:选择、循环和跳转。根据表达式结果或变量状态,选择语句可使程序选择不同的执行路径;循环语句使程序能够重复执行一个或一个以上语句;跳转语句允许程序以非线性的方式执行。本章将分析Java 语言的所有控制语句。n如果你熟悉C/C+,那么掌握Java的控制语句将很容易。事实上,Java的控制语句与C/C+中的语句几乎完全相同。但是它们还是有一些差别的尤其是break语句与continue语句,而且还有JDK5.0对for语句作了扩展。主要内容3.1选择语句

2、3.2循环语句 3.3跳转语句 3.1 选择语句nif语句nswitch语句 Java支持两种选择语句:if语句和switch语句。这些语句允许在程序运行时根据其状态控制程序的执行过程。分支比较少的情况下可使用if语句,分支比较多的情况下使用switch语句比较合适。 3.1.1 If语句nif或else控制的对象可以是单个语句(statement),也可以是程序块(block)。n条件condition可以是任何返回布尔值布尔值的表达式。else子句是可选的。 if (condition) statement1;else statement2;嵌套If语句if(i = 10) if(j 10

3、0) c = d; else a = c; else a = d; if(condition) statement1;else if (condition) statement2;else if(condition) statement3;.else statementn;注意:n嵌套if语句是指该if语句为另一个if或者else语句的对象。在编程时经常要用到嵌套if语句。当使用嵌套if语句时,需记住的要点就是:一个else语句总是对应着和它在同一个块中的最近的if语句,而且该if语句没有与其他else语句相关联。 确定某个月是什么季节 int month = 5; / MayString s

4、eason;if(month = 12 | month = 1 | month = 2) season = Winter;else if (month = 3 | month = 4 | month = 5) season = Spring;else if (month = 6 | month = 7 | month = 8) season = Summer;else if (month = 9 | month = 10 | month = 11) season = Autumn;else season = It is a wrong number!;3.1.2 switch语句语句switc

5、h (expression) case value1:. / statement sequencebreak;case value2:. / statement sequencebreak;case valueN:. / statement sequencebreak;default:. / default statement sequenceswitch语句是Java的多路分支语句。它提供了一种基于一个表达式的值来使程序执行不同部分的简单方法。因此,它提供了一个比一系列if-else-if语句更好的选择。switch语句的通用形式如右:switch注意事项1/2n表达式expression必

6、须为byte,short,int或char类型(数据类型长度小于等于32位),在JDK5.0中可以是用枚举类型(enum)。n每个case语句后的值value必须是与表达式类型兼容的特定的一个常量常量(它必须为一个常量,而不是变量)。重复重复的case值是不允许不允许的。 switch注意事项2/2n如果没有一个case常量与表达式的值相匹配,则执行default语句。 ncase语句只是起到一个标号作用,用来查找匹配的入口并从 此处 开始执行其后的语句序列.n在case语句序列中的break语句将引起程序流从整个switch语句退出。当遇到一个break语句时,程序将从整个switch语句后

7、的第一行代码开始继续执行,这有一种“跳出” switch语句的效果。如果没有遇到break语句,switch语句将一直执行到期结束。例子:SwitchBreak.java public class SwitchBreak public static void main(String args) int month = 5; String season; switch (month) case 12: case 1: case 2: season = Winter; break; 。枚举类型(enum) public enum Colors Red, Yellow, Blue, Orange,

8、Green, Purple, Brown, Black public static void main(String args) Colors myColor = Colors.Red; System.out.println(myColor); 又一个简单例子: import java.util.*; enum OperatingSystems windows, unix, linux, macintosh public class EnumExample1 public static void main(String args) OperatingSystems os; os = Opera

9、tingSystems.windows; switch(os) case windows:System.out.println(“You chose Windows!”);break;case unix: 枚举类型(enum)主要内容3.1选择语句 3.2循环语句 3.3跳转语句 3.2 循环语句nWhile语句ndo-whilenFor Java的循环语句有for,while和 do-while。这些语句创造了我们通常所称的循环(loops)。一个循环重复执行同一套指令直到一个结束条件出现。While语句nwhile语句是Java最基本的循环语句。当它的控制表达式是真时,while语句重复执

10、行一个语句或语句块。它的通用格式如下: while(condition) / body of loop . n条件condition可以是任何布尔表达式。只要条件表达式为真,循环体就被执行。当条件condition为假时,程序控制就传递到循环后面紧跟的语句行。如果只有单个语句需要重复,大括号是不必要的(加上大括号总是一件好的事情,便于以后扩充)。 While语句public class SampleWhile public static void main(String args) int sum = 0, i = 100; System.out.println(the sum is “ +

11、sum); do-while循环n do-while循环总是先执行循环体,然后再计算条件表达式。如果表达式为真,则循环继续。否则,循环结束。对所有的Java循环都一样,条件condition必须是一个布尔表达式。 do / body of loop. while (condition);do-while循环public class SampleDowhile public static void main(String args) int sum = 0, i = 100; System.out.println(the sum is + sum); for循环nfor循环是一个功能强大且形式灵

12、活的结构。下面是for循环的通用格式: for(initialization; condition; iteration) / body . n如只有一条语句需要重复,大括号就没有必要 for循环 for循环的执行过程如下:n第一步,当循环启动时,先执行其初始化部分。通常,这是设置循环控制变量值的一个表达式,作为控制循环的计数器。重要的是初始化表达式仅被执行一次。n第二步,计算条件condition的值。条件condition必须是布尔表达式。如果这个表达式为真,则执行循环体;如果为假,则循环终止。n第三步,如果condition为真,执行一次循环体。n第四步,执行循环体的迭代(iterati

13、on)部分,这部分通常是增加或减少循环控制变量的一个表达式。接下来计算条件表达式的值,然后执行循环体,接着执行迭代表达式。这个过程不断重复直到控制表达式变为假。 for循环 int sum = 0, i = 0; System.out.println(the sum is + sum);for的其它用法n在在for循环内声明变量循环内声明变量n在在for循环中使用逗号循环中使用逗号 for (int a = 1, b = 4; a b; a+, b-) System.out.println(a = + a); System.out.println(b = + b); for-each publ

14、ic class ForEachDemo public static void main(String args) int sum = 0;int a = new int100;for (int i = 0; i 100; i+)ai = 101 + i;/ for-each语句的使用System.out.println(the sum is + sum);可以用for语句遍历一个数组或集合中的所有元素。 For eachn 该程序中,“:”表示“in”的意思,for(int e:a)就是“for each int e in a”,即“对于数组a中的每个整数e”。通过定义一个整数变量e表示数组

15、中的每个元素。for-each循环看上去比一般的for循环漂亮的多,不需要使用下标。 主要内容3.1选择语句 3.2循环语句 3.3跳转语句 3.2 跳转语句nbreak语句ncontinue语句nreturn语句break在Java中,break语句有3种作用。n第一,在switch语句中,它被用来终止一个语句序列或者语句块。n第二,它能被用来退出一个循环。n第三,它能作为一种“先进”的goto 语句来使用。 break语句1/2n使用使用break 退出循环退出循环 for (int i = 0; i 3; i+) System.out.print(Pass + i + : ); for

16、(int j = 0; j 100; j+) if (j = 10) System.out.print(j + ); System.out.println(); break语句2/2:/BreakLabel.java n把把break 当作当作goto 的一种形式来用的一种形式来用 boolean t = true; first: second: third: System.out.println(Before the break.); System.out.println(This wont execute); System.out.println(This wont execute); S

17、ystem.out.println(This is after second block.); continuen break只不过是跳过循环体,到达循环的尾部。continue语句是break语句的补充。在while和do while循环中,continue语句使控制直接转移给控制循环的条件表达式,然后继续循环过程。在for循环中,循环的迭代表达式被求值,然后执行条件表达式,循环继续执行。对于这3种循环,continue后面的语句被忽略。 使用continue 语句1/2n终止本次循环继续循环for (int i = 1; i 20; i+) System.out.print(i + );

18、if (i % 5 != 0) System.out.println(); 使用continue 语句2/2:ncontinue带标号:/ContinueLabel.java outer: for (int i = 1; i 10; i+) for (int j = 1; j i) System.out.println(); System.out.print( + (i * j); System.out.println();使用Return语句nreturn语句用来明确地从一个方法返回。也就是,return语句使程序控制返回到调用它的方法。因此,将它分类为跳转语句。n在一个方法的任何时间,return语句可被用来使正在执行的分支程序返回到调用它的方法。下面的例子说明这一点。下例中,由于是Java 运行时系统调用main(),因此,return语句使程序执行返回到Java运行时系统。 例如:求累加和import java.io.*;pub

温馨提示

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

评论

0/150

提交评论