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

下载本文档

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

文档简介

第3章程序控制语句

本章要点目标掌握:if语句。掌握:switch语句和循环语句。理解:break、continue和return的用法。重点掌握:能熟练使用三种常用的控制语句。难点理解:循环语句的执行过程。3.1选择语句程序控制语句用于控制程序中各语句的执行顺序。Java提供的流程控制语句有选择语句、循环语句、跳转语句等。

3.2.1简单if条件语句简单if条件语句只在条件为真时执行,如图2-1if语句流程图所示其语法如下:if(条件){

语句(块);}

图2-1if语句流程图条件语句(块)TrueFalse3.1选择语句若布尔表达式的值为真,则执行块内语句。if(score>=60)

system.out.println(“你及格了”);if(score<60)

system.out.println(“你没有及格”);注意:在if子句末不能加分号(;)在if语句中,布尔表达式总应该用括号括住。如果块中只有一条语句,花括号可以省略。但建议使用花括号以避免编程错误。3.1选择语句3.1.2if-else条件语句当指定条件为真时简单if语句执行一个操作,当条件为假时什么也不做。那么,如果需要在条件为假时选择一个操作,则可以使用if-else语句来指定不同的操作,如图2-2if-else语句流程图所示。下面是这种语句的语法:if(布尔表达式){布尔表达式为真时执行的语句1(块);}else{布尔表达式为假时执行的语句2(块);}图2-2if-else语句流程图条件语句1(块)TrueFalse语句2(块)3.1选择语句若布尔表达式计算为真,执行语句1(块)(true时执行),否则,执行语句2(块)(false时执行)。if(score>=60){System.out.println(“你及格了”);}else{System.out.println(“你没有及格”);}3.1选择语句3.1.3if嵌套语句if或if…else语句中的语句可以是任意合法的Java语句—包括其他if或if-else语句。内层的if语句称为嵌套在外层if语句中。内层if语句又可以包含另一个if语句,事实上,嵌套的深度没有限制。if(Score<60)System.out.println("不及格");elseif(Score<80)

System.out.println("及格");elseif(Score<90)

System.out.println("良好");else

System.out.println("优秀:);3.1选择语句前面的if语句与下述语句等价:if(score<60)

System.out.println("不及格");elseif(score<80)

System.out.println("及格");elseif(score<90)

System.out.println("良好");else

System.out.println("优秀");事实上,这是多重选择if语句比较好的书写风格。这个风格可以避免深层缩进,并使程序容易阅读。注意:else子句与同一块中离得最近的if子句相匹配。3.1选择语句3.1.4switch语句switch语句根据表达式的结果来执行多个可能操作中的一个,它的语法形式如下:switch(表达式){case常量1:语句1;break;case常量2: 语句2; break;…case常量n: 语句n;break;default:缺省处理语句;}switch语句中的每个“case常量:”称为一个case子句,代表一个case分支的入口。switch语句的流程图如图2-3所示。图2-3switch语句流程图3.1选择语句在Java中,可以用switch语句对操作进行分组,例如:switch(Score){case1:

System.out.println("优秀"); break;case2:

System.out.println("优良"); break;case3:

System.out.println("良好"); break;case4:

System.out.println("及格"); break;case5:

System.out.println("不及格"); break;default:}switch要检查变量Score的值,它的每个值是特定值用“casevalue:”来表示或者是使用缺省从句用“default:”来表示。注意程序中使用了关键字break,它的作用就是在得到与某个特定值相匹配之后执行代码完成的时候跳出switch条件。Java的3种循环语句有while、do-while和for循环语句。3.2.1while循环语句它的执行过程如图2-4所示,其的语法如下:while(条件){循环体}说明:循环条件是一个布尔表达式,它必须放在括号中。在循环体执行前一定先计算循环条件,若条件为真,执行循环体,若条件为假,整个循环中断并且程序控制转移到while循环后的语句。图2-4while语句流程图条件循环体falsetrue3.2循环语句3.2循环语句例如用while循环打印“Welcome!”一百次。inti=0;while(i<100){System.out.println(“Welcome!”);i++;}i的初值为0。循环检查(i<100)是否为真,若真,则执行循环体,打印消息“Welcome!”并使i加1。这将重复执行,直到(i<100)为止。若(i<100)变为假,循环中断并执行循环体之后的第一条语句。3.2循环语句3.2.2do-while循环语句do循环其实就是while循环的变体。它的执行过程如图2-5所示,其的语法如下:do{//循环体;}while(条件);注意:在do循环中while条件判断之后需要添加一个分号。图2-5do语句流程图条件循环体falsetrue3.2循环语句do-while的循环流程是和while循环不一样的,二者的主要差别在于循环条件和循环体的计算顺序不同。例如,可将例3-1改写如下:publicclassTestDo{ publicstaticvoidmain(String[]args){

intdata;

intsum=0;

do{ data=ReadInt();sum+=data;}while(data!=0);

System.out.println(“Thesumis”+sum);}}3.2循环语句【例3-1】源程序TestWhile.java,读入一系列整数并计算其和,输入0则表示输入结束。classTestWhile{ publicstaticvoidmain(String

args[])throws

java.io.IOException{

inti;

intsum=0;

System.out.println("请输入一个整数,0代表结束"); do{

System.out.print("你输入的是:"); do{ i=System.in.read(); }while(i=='\n'|i=='\r'); i=i-'0'; sum=sum+i; }while(i!=0);

System.out.println("sum="+sum); }}3.2循环语句3.2.3for循环语句for循环语法如下:

for(循环变量初始化;循环条件;调整语句){循环体;}for循环语句以关键字for开始,然后是由括号括住的三个控制元素,循环体括在大括号内。控制元素由分号分开,控制循环体的执行次数和终止条件。3.2循环语句下面的for循环可以打印"Welcome!"100次。inti;for(i=0;i<100;i++){System.out.println("Welcome!");}第一个元素为i=0,初始化循环变量。循环变量跟踪循环体的执行次数,调整语句修改它的值。第二个元素为i〈100,是布尔表达式,用作循环条件。第三个元素是调整控制变量的语句,循环变量的值最终必须使循环条件变为假。另外,循环变量也可以在for循环中进行说明和初始化。上例还可写成下列语句:for(inti=0;i<100;i++){

System.out.println("Welcome!");}3.2循环语句例3-2源程序TestSum.java,使用for循环计算从1到100的数列的和。//本程序利用for循环计算1到100的和publicclassTestSum{ publicstaticvoidmain(String[]args){

intsum=0; for(inti=1;i<=100;i++)

sum+=i;

System.out.println("Thesumis"+sum); }}3.2循环语句运行结果程序分析第6句组成的for循环,变量i从1开始,每次增加1,当i大于100时循环终止。3.2循环语句例3-3:源程序TestMulTable.java,使用嵌套的for循环打印九九乘法表。

//本程序打印九九乘法表

publicclassTestMulTable{ publicstaticvoidmain(String[]args){

System.out.print("");

for(intj=1;j<=9;j++)

System.out.print(""+j);

System.out.println("");for(inti=1;i<=9;i++){

System.out.print(i+"");

for(j=1;j<=i;j++){if(i*j<10)

System.out.print(""+i*j);elseSystem.out.print(""+i*j);}

System.out.println();}}}3.2循环语句运行结果程序分析第5~6句组成的第一个循环显示数1到9;第8句~19句是一个嵌套的for循环,对每个外循环的循环变量i,内循环的循环变量j都要逐个取1,2,...,9,并显示出i*j的值;第13~16句的if语句使结果右对齐。3.3与程序有关的其他语句3.3.1break语句break有两种形式break和break标号。一种是不带语句标号的break,用于立刻终止包含它的最内层循环。另一种是带标号的break,用于多重循环中,跳出它所指定的块,并从紧跟该块的第一条语句处执行。例如:下面break语句中断内层循环并把控制立即转移到外层循环后的语句。

outer:for(inti=1;i<10;i++){inner:for(intj=1;j<10;j++){if(i*j>50)breakouter;

System.out.println(i*j);}}如果把上述语句中的breakouter换成break,则break语句终止内层循环,仍然留在外层循环中。如果想退出外循环,就要使用带标号的。3.3与程序有关的其他语句例3-4:源程序TestBreak.java,测试break语句对程序结果的影响。

//本程序测试break语句publicclassTestBreak{publicstaticvoidmain(String[]args){

intsum=0;

intitem=0;

while(item<5){item++;sum+=item;

if(sum>=6)break;}

System.out.println("Thesumis"+sum);}}3.3与程序有关的其他语句运行结果程序分析第6~11句的while循环中,如果不用9行的if语句,本程序计算从1到5的和。如果有了if语句,总和大于等于6时循环终止。3.3与程序有关的其他语句3.3.2continue语句continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。例3-5源程序“TestContinue.java”,测试continue语句。

//本程序测试continue语句publicclassTestContinue{publicstaticvoidmain(String[]args){

intsum=0;

inti=0;

while(i<5){ i++;

if(i==2) continue; sum+=i; }

System.out.println("Thesumis

温馨提示

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

评论

0/150

提交评论