ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:20.90KB ,
资源ID:26128274      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26128274.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(34控制流程语句.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

34控制流程语句.docx

1、34控制流程语句语言基础 3.4 控制流程语句程序使用控制流程语句来有条件地执行语句、循环语句或者跳转到程序中的其它部分执行语句。这节教程介绍怎样利用比如if-else和while来控制你的程序流程。当你编写程序的时候,你在文件中键如语句。如果你没有使用控制流程语句,编译器将以从左到右、从上到下的顺序执行这些语句。你可以在你的程序中使用控制流程语句来有条件地执行语句、来重复执行语句块地代码、改变程序执行的顺序等等。比如,在下面的代码段中,if语句就有条件执行了括号中的System.out.println,这里的条件是Character.isUpperCase(aChar)的返回值: char

2、c;.if (Character.isUpperCase(aChar) System.out.println(The character + aChar + is upper case.);JAVA编程语言提供了几个控制流程语句,在下表给出了:语句 关键字 循环语句 while, do-while , for 判断语句 if-else, switch-case 异常处理 try-catch-finally, throw 分支语句 break, continue, label:, return 控制流程语句的基本格式为:控制流程语句描述语句(参数)如果块中只有一条语句,大括号和并不是必要的。但是

3、这里推荐使用和,因为代码会更容易阅读,避免在修改代码的时候发生错误。 控制流程语句有:1. while和do-while语句 2. for语句 3. if-else语句 4. switch语句 5. 异常处理语句 6. 分支语句 这里注意,虽然goto是一个保留字,它在C语言中也是一个控制流程语句,但是当前JAVA编程语言还不支持这个goto语句。好吧,我们开始对各个控制流程语句逐个介绍。3.4.1 while和do-while语句你可以使用while语句当条件保持为true的时候,持续执行语句块。While语句的通常语法为: while (expression) statement首先,wh

4、ile语句执行表达式,它将返回一个boolean数(true或者false)。如果表达式返回true,while语句执行相应的语句。While语句继续测试表达式并执行块代码直到表达式返回false。下面给出一个例程WhileDemo,它使用while语句来浏览字符串的各个字符并复制字符串直到程序找到字符g为止:public class WhileDemo public static void main(String args) String copyFromMe = Copy this string until you + encounter the letter g.;StringBuffe

5、r copyToMe = new StringBuffer();int i = 0;char c = copyFromMe.charAt(i);while (c != g) copyToMe.append(c);c = copyFromMe.charAt(+i);System.out.println(copyToMe);最后一行打印出来的数值为:Copy this strin. JAVA编程语言提供了另外一个语句,它跟while语句和相似,即do-while语句。Do-while的语法为: do statement(s) while (expression);不象while语句,do-whil

6、e语句是先执行循环中的语句后再计算表达式的,所以do-while语句就至少执行一次语句。下面是对上面的程序利用do-while来修改而得的:public class DoWhileDemo public static void main(String args) String copyFromMe = Copy this string until you +encounter the letter g.;StringBuffer copyToMe = new StringBuffer();int i = 0;char c = copyFromMe.charAt(i);do copyToMe.a

7、ppend(c);c = copyFromMe.charAt(+i); while (c != g);System.out.println(copyToMe);最后一行打印出来的数值为:Copy this strin3.4.2 for语句for语句提供了一个简便的方法来进行循环。For语句的语法如下:for (初始条件;终止条件;增量) 语句初始条件是初始化循环的表达式,它在循环开始的时候就被执行一次。而终止条件决定什么时候终止循环。这个表达式在每次循环的过程都被计算。当表达式计算结果为false的时候,这个循环结束。最后,增量是循环一次增加多少(即步长)的表达式。所有的这些都是可选的。实际上

8、,为了实现无限制的循环,这三个表达式都可以省略。 for ( ; ; ) / 无限制的循环.下面是一个例程ForDemo,它使用了一个for语句来打印一个数组的所有元素: public class ForDemo public static void main(String args) int arrayOfInts = 32, 87, 3, 589, 12, 1076,2000, 8, 622, 127 ;for (int i = 0; i = 90) grade = A; else if (testscore = 80) grade = B; else if (testscore = 70

9、) grade = C; else if (testscore = 60) grade = D; else grade = F;System.out.println(Grade = + grade);程序的输出为: Grade = C3.4.3 if-else语句这时你可以注意到testscore的数值可以满足组合if条件76 = 70 and 76 = 60,但是当系统处理组合if语句的时候,一旦条件满足,适当的语句就将被执行(grade = C;),并且不需要计算剩余的条件控制就跳出if语句。JAVA编程语言支持运算符?:,它是一个简化的if语句。 下面再看看上面教程中的MaxVariab

10、lesDemo程序:if (Character.isUpperCase(aChar) System.out.println(The character + aChar + is upper case.); else System.out.println(The character + aChar + is lower case.);下面你可以利用?:运算符来重写这段代码: System.out.println(The character + aChar + is +(Character.isUpperCase(aChar) ? upper : lower) +case.);如果这个isUppe

11、rCase方法返回true,这个?:运算符返回字符串upper 。或则,它就返回字符串lower3.4.4 switch语句使用switch语句可以根据一个整型表达式有条件地执行语句。下面的例程SwitchDemo,声明了一个整型变量month,它的数值代表了月份。这个程序显示了月份的名字,主要是根据month的数值并且使用了switch语句。 public class SwitchDemo public static void main(String args) int month = 8;switch (month) case 1: System.out.println(January);

12、 break;case 2: System.out.println(February); break;case 3: System.out.println(March); break;case 4: System.out.println(April); break;case 5: System.out.println(May); break;case 6: System.out.println(June); break;case 7: System.out.println(July); break;case 8: System.out.println(August); break;case 9

13、: System.out.println(September); break;case 10: System.out.println(October); break;case 11: System.out.println(November); break;case 12: System.out.println(December); break;这个switch语句计算它的表达式,在这个例子中是计算month的数值,然后计算适当的case 语句。这样,程序的输出为:August。3.4.4 switch语句当然,你可以使用if语句来实现它: int month = 8;if (month = 1

14、) System.out.println(January); else if (month = 2) System.out.println(February);. . . 决定使用if语句还是switch语句的关键主要是根据可读型以及其它因素。if语句可以在更大范围或者条件来决定,而switch只有根据单个整型变量来做决定。同时,提供给case语句的数值必须是单一的。另外一点是,switch语句在每个case之后有一个break语句。每个break语句终止了swtich语句,并且控制流程继续switch块之后的第一个语句。break语句是必须的,因为没有它,case语句就会失效,也就是说,没有

15、break语句,控制流程按顺序执行case语句。下面的程序SwichDemo2将介绍为什么它是有效的; 这个程序的输出为: Number of Days = 29最后的break语句是不需要的,因为流程将跳出switch语句了。但是,我们推荐使用为最后一个case语句使用一个break以防你需要还增加更多的case语句。这就使得更容易修改代码以及减少错误。一般地,你可以使用break来在分支语句中终止循环。最后你可以在switch最后使用缺省地语句来处理所有的上面没有处理的情况。int month = 8;. . .switch (month) case 1: System.out.print

16、ln(January); break;case 2: System.out.println(February); break;case 3: System.out.println(March); break;case 4: System.out.println(April); break;case 5: System.out.println(May); break;case 6: System.out.println(June); break;case 7: System.out.println(July); break;case 8: System.out.println(August);

17、break;case 9: System.out.println(September); break;case 10: System.out.println(October); break;case 11: System.out.println(November); break;case 12: System.out.println(December); break;default: System.out.println(Hey, thats not a valid month!); break;3.4.5 异常处理语句JAVA编程语言提供一个异常机制用来帮助程序报告和处理错误。当一个错误发生

18、的时候,程序就产生一个异常。即正常的程序路程被中断并且系统缓建想找到一个异常处理:一个能处理特殊类型错误的代码块。这个异常福利可以视图恢复错误或者如果它决定了错误是不可修复的,它提供一个较好退出程序的方法。有三条语句可以处理异常:1. try语句,它可以在异常产生的地方识别语句块。 2. catch语句,它必须和try语句一起用,它可是识别可以处理特定异常错误的语句块。这个语句是在如果有一个特定的异常发生在try块中就被执行。 (3)finally语句,它必须跟try语句一起用,它可以识别语句块,这些语句块是在不管在try块中是否有错误发生被执行的。下面是这三个语句的语法格式:try 语句(参

19、数) catch (异常错误类型 名字) 语句(参数) finally 语句(参数)上面简述了由JAVA编程语言提供的用来报告和处理错误的语句。但是,另外的因素和原因,比如运行和检查异常之间的差异以及异常类的分级结构(代表异常的不同种类)在使用异常机制的时候起着重要的作用。3.4.6 分支语句JAVA编程语言支持下面的三种分支结构:break语句continue语句return语句 下面逐个介绍:(1)break语句break语句有两种形式:未标志的和标志的。你在前面就已经看过了未标志的break语句。一个未标志的break语句终止swtich语句,控制流程马上转到switch语句下方的语句。

20、下面的例程BreakDemo,它包含了一个for循环查找数组中特定的数值: public class BreakDemo public static void main(String args) int arrayOfInts = 32, 87, 3, 589, 12, 1076,2000, 8, 622, 127 ;int searchfor = 12;int i = 0;boolean foundIt = false;for ( ; i arrayOfInts.length; i+) if (arrayOfIntsi = searchfor) foundIt = true;break;if

21、 (foundIt) System.out.println(Found + searchfor + at index + i); else System.out.println(searchfor + not in the array);当数值被找到的时候,这个break语句终止了for循环。控制流程就转到for语句的下面的语句继续执行。这个程序的输出为: Found 12 at index 43.4.6 分支语句未标志形式的break语句被用来终止内部的switch、for、while或者do-while。而标志形式的break语句终止一个外部的语句,它是通过在break语句中使用一个标志来

22、实现的。下面的例程BreakWithLabelDemo跟前面的例子有点相似,只不过它是在一个两维数组中搜索一个数值。利用两个嵌套的for循环遍历了整个数组。当数值被找到了,标志形式的break语句就终止标志的search语句,这个search语句是在for循环外部的: public class BreakWithLabelDemo public static void main(String args) int arrayOfInts = 32, 87, 3, 589 , 12, 1076, 2000, 8 , 622, 127, 77, 955 ;int searchfor = 12;int

23、 i = 0;int j = 0;boolean foundIt = false;search:for ( ; i arrayOfInts.length; i+) for (j = 0; j arrayOfIntsi.length; j+) if (arrayOfIntsij = searchfor) foundIt = true;break search;if (foundIt) System.out.println(Found + searchfor + at + i + , + j); else System.out.println(searchfor + not in the arra

24、y);这个程序的输出为: Found 12 at 1, 0这个语法看起来可能有点费解。break语句终止了标志语句,它不能将控制流程转到这个标志处。控制流程迅速将标志(终止的)后面的语句。2)continue语句你可以使用continue语句来跳过当前的for、while或者do-while循环。未标志形式跳到内部循环体的末尾处并且计算控制循环的boolean表达式,跳过循环的其它部分。下面的例程ContinueDemo遍历字符串中的所有字母。如果当前字母不是一个p,contiue语句就忽略循环的其它部分并且处理下一个字符。如果它是一个p字母,程序就对计数器增1,再将p转换维大写字母: pub

25、lic class ContinueDemo public static void main(String args) StringBuffer searchMe = new StringBuffer(peter piper picked a peck of pickled peppers);int max = searchMe.length();int numPs = 0;for (int i = 0; i max; i+) /interested only in psif (searchMe.charAt(i) != p)continue;/process psnumPs+;searchM

26、e.setCharAt(i, P);System.out.println(Found + numPs + ps in the string.);System.out.println(searchMe);这个程序的输出为: Found 9 ps in the string.Peter PiPer Picked a Peck of Pickled PePPers标志形式的continue语句将忽略外部给定标志的循环。下面的例程ContinueWithLabelDemo,它使用了一个嵌套的循环来搜索一个子字符串。程序如下:public class ContinueWithLabelDemo public static void main(String args) String searchMe = Look for a substring in me;String substrin

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1