第03章程序控制语句.ppt

上传人:本田雅阁 文档编号:2250421 上传时间:2019-03-11 格式:PPT 页数:38 大小:123.51KB
返回 下载 相关 举报
第03章程序控制语句.ppt_第1页
第1页 / 共38页
第03章程序控制语句.ppt_第2页
第2页 / 共38页
第03章程序控制语句.ppt_第3页
第3页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第03章程序控制语句.ppt》由会员分享,可在线阅读,更多相关《第03章程序控制语句.ppt(38页珍藏版)》请在三一文库上搜索。

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

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

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

4、String season; 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!

5、“;,3.1.2 switch语句,switch (expression) case value1: . / statement sequence break; case value2: . / statement sequence break; case valueN: . / statement sequence break; default: . / default statement sequence ,switch语句是Java的多路分支语句。它提供了一种基于一个表达式的值来使程序执行不同部分的简单方法。因此,它提供了一个比一系列if-else-if语句更好的选择。switch语句的

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

7、遇到一个break语句时,程序将从整个switch语句后的第一行代码开始继续执行,这有一种“跳出” 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 Co

8、lors Red, Yellow, Blue, Orange, 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

9、) OperatingSystems os; os = OperatingSystems.windows; switch(os) case windows: System.out.println(“You chose Windows!”); break; case unix: ,枚举类型(enum),主要内容,3.1选择语句 3.2循环语句 3.3跳转语句,3.2 循环语句,While语句 do-while For Java的循环语句有for,while和 do-while。这些语句创造了我们通常所称的循环(loops)。一个循环重复执行同一套指令直到一个结束条件出现。,While语句,whi

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

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

12、0, i = 100; do i+; sum += i; while (i 200); System.out.println(“the sum is “+ sum); ,for循环,for循环是一个功能强大且形式灵活的结构。下面是for循环的通用格式: for(initialization; condition; iteration) / body . 如只有一条语句需要重复,大括号就没有必要,for循环,for循环的执行过程如下: 第一步,当循环启动时,先执行其初始化部分。通常,这是设置循环控制变量值的一个表达式,作为控制循环的计数器。重要的是初始化表达式仅被执行一次。 第二步,计算条件co

13、ndition的值。条件condition必须是布尔表达式。如果这个表达式为真,则执行循环体;如果为假,则循环终止。 第三步,如果condition为真,执行一次循环体。 第四步,执行循环体的迭代(iteration)部分,这部分通常是增加或减少循环控制变量的一个表达式。接下来计算条件表达式的值,然后执行循环体,接着执行迭代表达式。这个过程不断重复直到控制表达式变为假。,for循环,int sum = 0, i = 0; for (i = 101; i = 200; i+) sum += i; System.out.println(“the sum is “ + sum);,for的其它用法,

14、在for循环内声明变量 在for循环中使用逗号,for (int a = 1, b = 4; a b; a+, b-) System.out.println(“a = “ + a); System.out.println(“b = “ + b); ,for-each,public 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语句的使用 for (int e : a

15、) sum = sum + e; System.out.println(“the sum is “ + sum); ,可以用for语句遍历一个数组或集合中的所有元素。,For each,该程序中,“:”表示“in”的意思,for(int e:a)就是“for each int e in a”,即“对于数组a中的每个整数e”。通过定义一个整数变量e表示数组中的每个元素。for-each循环看上去比一般的for循环漂亮的多,不需要使用下标。,主要内容,3.1选择语句 3.2循环语句 3.3跳转语句,3.2 跳转语句,break语句 continue语句 return语句,break,在Java中,

16、break语句有3种作用。 第一,在switch语句中,它被用来终止一个语句序列或者语句块。 第二,它能被用来退出一个循环。 第三,它能作为一种“先进”的goto 语句来使用。,break语句1/2,使用break 退出循环,for (int i = 0; i 3; i+) System.out.print(“Pass “ + i + “: “); for (int j = 0; j 100; j+) if (j = 10) break; System.out.print(j + “ “); System.out.println(); ,break语句2/2:/BreakLabel.java,

17、把break 当作goto 的一种形式来用 boolean t = true; first: second: third: System.out.println(“Before the break.“); if (t) break second; System.out.println(“This wont execute“); System.out.println(“This wont execute“); System.out.println(“This is after second block.“); ,continue,break只不过是跳过循环体,到达循环的尾部。continue语句

18、是break语句的补充。在while和do while循环中,continue语句使控制直接转移给控制循环的条件表达式,然后继续循环过程。在for循环中,循环的迭代表达式被求值,然后执行条件表达式,循环继续执行。对于这3种循环,continue后面的语句被忽略。,使用continue 语句1/2,终止本次循环继续下一次循环,for (int i = 1; i 20; i+) System.out.print(i + “ “); if (i % 5 != 0) continue; System.out.println(“); ,使用continue 语句2/2:,continue带标号:/Con

19、tinueLabel.java,outer: for (int i = 1; i i) System.out.println(); continue outer; System.out.print(“ “ + (i * j); System.out.println();,使用Return语句,return语句用来明确地从一个方法返回。也就是,return语句使程序控制返回到调用它的方法。因此,将它分类为跳转语句。 在一个方法的任何时间,return语句可被用来使正在执行的分支程序返回到调用它的方法。下面的例子说明这一点。下例中,由于是Java 运行时系统调用main(),因此,return语句

20、使程序执行返回到Java运行时系统。,例如:求累加和,import java.io.*; public class SumR /方法sum(int n)用来实现数n的连加,即n public static int sum(int n) if(n1) return 0; else return sum(n-1)+n; ,public static void main(String args) int result=0; /用来存放计算结果 String str; /用来存放输入的数字字符串 int num=0; System.out.println(“Please input the numbe

21、r :“); try DataInputStream in=new DataInputStream(System.in); str=in.readLine(); /输入的数字字符串 num=Integer.parseInt(str); catch(Exception e) result=sum(num); /求1+2+3+num System.out.println(result); ,return:返回JRE,class Return public static void main(String args) boolean t = true; System.out.println(“Before the return.“); if (t) return; System.out.println(“This wont execute.“); ,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1