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

下载本文档

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

文档简介

第3章程序控制语句

主要内容:编程语言使用控制语句来产生执行流,从而完成程序状态的改变,如程序顺序执行和分支执行。Java程序控制语句分为三类:选择、循环和跳转。根据表达式结果或变量状态,选择语句可使程序选择不同的执行路径;循环语句使程序能够重复执行一个或一个以上语句;跳转语句允许程序以非线性的方式执行。本章将分析Java语言的所有控制语句。如果你熟悉C/C++,那么掌握Java的控制语句将很容易。事实上,Java的控制语句与C/C++中的语句几乎完全相同。但是它们还是有一些差别的——尤其是break语句与continue语句,而且还有JDK5.0对for语句作了扩展。主要内容3.1选择语句3.2循环语句3.3跳转语句3.1选择语句if语句switch语句Java支持两种选择语句:if语句和switch语句。这些语句允许在程序运行时根据其状态控制程序的执行过程。分支比较少的情况下可使用if语句,分支比较多的情况下使用switch语句比较合适。3.1.1If语句if或else控制的对象可以是单个语句(statement),也可以是程序块(block)。条件condition可以是任何返回布尔值的表达式。else子句是可选的。if(condition)statement1;else

statement2;嵌套If语句if(i==10){

if(j<20)

a=b;

if(k>100)c=d;

elsea=c;}elsea=d;if(condition)statement1;elseif(condition)statement2;elseif(condition)statement3;...elsestatementn;3.1.2switch语句switch(expression){casevalue1:...//statementsequencebreak;casevalue2:...//statementsequencebreak;casevalueN:...//statementsequencebreak;default:...//defaultstatementsequence}switch语句是Java的多路分支语句。它提供了一种基于一个表达式的值来使程序执行不同部分的简单方法。因此,它提供了一个比一系列if-else-if语句更好的选择。switch语句的通用形式如右:switch注意事项1/2表达式expression必须为byte,short,int或char类型(数据类型长度小于等于32位),在JDK5.0中可以是用枚举类型(enum)。每个case语句后的值value必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量)。重复的case值是不允许的。switch注意事项2/2如果没有一个case常量与表达式的值相匹配,则执行default语句。case语句只是起到一个标号作用,用来查找匹配的入口并从此处开始执行其后的语句序列.在case语句序列中的break语句将引起程序流从整个switch语句退出。当遇到一个break语句时,程序将从整个switch语句后的第一行代码开始继续执行,这有一种“跳出”

switch语句的效果。如果没有遇到break语句,switch语句将一直执行到期结束。例子:SwitchBreak.javapublicclassSwitchBreak{publicstaticvoidmain(String[]args){intmonth=5;Stringseason;switch(month){case12:case1:case2:season="Winter";break;

。。。。。。。枚举类型(enum)publicenumColors{Red,Yellow,Blue,Orange,Green,Purple,Brown,Black}publicstaticvoidmain(String[]args){ ColorsmyColor=Colors.Red; System.out.println(myColor);}

又一个简单例子:

importjava.util.*;enumOperatingSystems{windows,unix,linux,macintosh}publicclassEnumExample1{ publicstaticvoidmain(Stringargs[]){ OperatingSystemsos; os=OperatingSystems.windows; switch(os){ casewindows: System.out.println(“YouchoseWindows!”); break; caseunix:

………………枚举类型(enum)主要内容3.1选择语句3.2循环语句3.3跳转语句3.2循环语句While语句do-whileForJava的循环语句有for,while和do-while。这些语句创造了我们通常所称的循环(loops)。一个循环重复执行同一套指令直到一个结束条件出现。While语句while语句是Java最基本的循环语句。当它的控制表达式是真时,while语句重复执行一个语句或语句块。它的通用格式如下:

while(condition){//bodyofloop...}条件condition可以是任何布尔表达式。只要条件表达式为真,循环体就被执行。当条件condition为假时,程序控制就传递到循环后面紧跟的语句行。如果只有单个语句需要重复,大括号是不必要的(加上大括号总是一件好的事情,便于以后扩充)。While语句publicclassSampleWhile{publicstaticvoidmain(String[]args){intsum=0,i=100;

while(i<200){i++;sum+=i;}System.out.println("thesumis“+sum);}}do-while循环do-while循环总是先执行循环体,然后再计算条件表达式。如果表达式为真,则循环继续。否则,循环结束。对所有的Java循环都一样,条件condition必须是一个布尔表达式。do{//bodyofloop...}while(condition);do-while循环publicclassSampleDowhile{publicstaticvoidmain(String[]args){intsum=0,i=100;

do{i++;sum+=i;}while(i<200);System.out.println("thesumis"+sum);}}for循环for循环是一个功能强大且形式灵活的结构。下面是for循环的通用格式:

for(initialization;condition;iteration){//body...}如只有一条语句需要重复,大括号就没有必要for循环for循环的执行过程如下:第一步,当循环启动时,先执行其初始化部分。通常,这是设置循环控制变量值的一个表达式,作为控制循环的计数器。重要的是初始化表达式仅被执行一次。第二步,计算条件condition的值。条件condition必须是布尔表达式。如果这个表达式为真,则执行循环体;如果为假,则循环终止。第三步,如果condition为真,执行一次循环体。第四步,执行循环体的迭代(iteration)部分,这部分通常是增加或减少循环控制变量的一个表达式。接下来计算条件表达式的值,然后执行循环体,接着执行迭代表达式。这个过程不断重复直到控制表达式变为假。for循环intsum=0,i=0;

for(i=101;i<=200;i++){sum+=i;}System.out.println("thesumis"+sum);for的其它用法在for循环内声明变量在for循环中使用逗号

for(inta=1,b=4;a<b;a++,b--){System.out.println("a="+a);System.out.println("b="+b);}for-eachpublicclassForEachDemo{ publicstaticvoidmain(String[]args){ intsum=0; inta[]=newint[100]; for(inti=0;i<100;i++) a[i]=101+i; //for-each语句的使用

for(inte:a) sum=sum+e; System.out.println("thesumis"+sum); }}可以用for语句遍历一个数组或集合中的所有元素。Foreach

该程序中,“:”表示“in”的意思,for(inte:a)就是“foreachinteina”,即“对于数组a中的每个整数e”。通过定义一个整数变量e表示数组中的每个元素。for-each循环看上去比一般的for循环漂亮的多,不需要使用下标。主要内容3.1选择语句3.2循环语句3.3跳转语句3.2跳转语句break语句continue语句return语句break在Java中,break语句有3种作用。第一,在switch语句中,它被用来终止一个语句序列或者语句块。第二,它能被用来退出一个循环。第三,它能作为一种“先进”的goto语句来使用。break语句1/2使用break退出循环for(inti=0;i<3;i++){System.out.print("Pass"+i+":");for(intj=0;j<100;j++){if(j==10)

break;System.out.print(j+"");}System.out.println();}break语句2/2://BreakLabel.java

把break当作goto的一种形式来用

booleant=true;first:{second:{third:{System.out.println("Beforethebreak.");

if(t)breaksecond;System.out.println("Thiswon'texecute");}System.out.println("Thiswon'texecute");}System.out.println("Thisisaftersecondblock.");}continuebreak只不过是跳过循环体,到达循环的尾部。continue语句是break语句的补充。在while和dowhile循环中,continue语句使控制直接转移给控制循环的条件表达式,然后继续循环过程。在for循环中,循环的迭代表达式被求值,然后执行条件表达式,循环继续执行。对于这3种循环,continue后面的语句被忽略。使用continue语句1/2终止本次循环继续下一次循环for(inti=1;i<20;i++){System.out.print(i+"");if(i%5!=0)

continue;System.out.println("");}使用continue语句2/2:continue带标号://ContinueLabel.javaouter:for(inti=1;i<10;i++){for(intj=1;j<10;j++){if(j>i){System.out.println();

continueouter;}System.out.print(""+(i*j));}}System.out.println();使用Return语句return语句用来明确地从一个方法返回。也就是,return语句使程序控制返回到调用它的方法。因此,将它分类为跳转语句。在一个方法的任何时间,return语句可被用来使正在执行的分支程序返回到调用它的方法。下面的例子说明这一点。下例中,由于是Java运行时系统调用main(),因此,return语句使程序执行返回到Java运行时系统。例如:求累加和importjava.io.*;publicclassSumR{//方法sum(intn)用来实现数n的连加,即∑npublicstaticintsum(intn){if(n<1)

温馨提示

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

评论

0/150

提交评论