Java语言程序设计 高职软件专业 赵景晖 迟勇 课件第四章 流程控制PPT格式课件下载.ppt
《Java语言程序设计 高职软件专业 赵景晖 迟勇 课件第四章 流程控制PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计 高职软件专业 赵景晖 迟勇 课件第四章 流程控制PPT格式课件下载.ppt(24页珍藏版)》请在冰点文库上搜索。
ifelse语句格式为:
if(条件表达式)语句1或块1;
else语句2或块2;
如果条件表达式为真时,执行后面的语句1或块1,然后跳过else语句后的语句2或块2,接着执行下面的语句;
如果条件表达式为假,跳过if语句后面的语句1或块1,执行else后面的语句2或块2,然后接着执行下面的语句。
注意:
else子句不能单独使用,必须与if子句配套使用。
辽宁机电职业技术学院,DesignedByChiyong2008,4.3.1if分支结构(1-2),ifelse嵌套语句若ifelse分支中语句1或语句2又包含有if语句,就构成了if语句的嵌套。
格式为:
if(条件表达式1)语句1或块1;
elseif(条件表达式2)语句2或块2;
elseif(条件表达式3)语句3或块3;
elseif(条件表达式n)语句n或块n;
else语句n+1;
ifelse结构流程如图所示:
辽宁机电职业技术学院,DesignedByChiyong2008,4.3.1if分支结构(1-3),说明:
条件语句嵌套中,如果有多个if和else子句没有用块花括号标明所属作用域,可以根据以下原则判断与else相匹配的if子句:
else子句总是与离它最近的,且没有else相匹配的if子句相匹配。
其中最后的else子句是可选的。
图4-3所描述的是ifelse分支语句结构中的一种情况,同样地,if和else子句也可以出现在if子句的块内见例4-1:
显示输出成绩信息,辽宁机电职业技术学院,DesignedByChiyong2008,例4-1:
显示输出成绩信息,publicclassTestIfpublicstaticvoidmain(Stringargs)intscore=Integer.parseInt(args0);
if(score=60)if(score=70,辽宁机电职业技术学院,DesignedByChiyong2008,4.3.2switchcase分支结构(1-1),与ifelse嵌套相比,switchcase结构实现类似的分支选择显得结构十分清晰,可读性更强,如图所示。
辽宁机电职业技术学院,DesignedByChiyong2008,4.3.2switchcase分支结构(1-2),switch语句的格式:
switch(表达式)case常量表达式1:
语句序列1;
break;
case常量表达式2:
语句序列2;
case常量表达式n:
语句序列n;
default:
语句序列n+1;
使用switchcase结构注意事项如下:
switch(表达式)中表达式的值只能为int、byte、short、char,不允许为long,double等长型值,也不允许是Stringcase子句表达式为常量;
例4-2:
简单计算器(使用输入流完成操作数的输入),辽宁机电职业技术学院,DesignedByChiyong2008,例4-2:
简单计算器(使用输入流完成操作数的输入),importjava.io.*;
publicclassCalculatorpublicstaticvoidmain(Stringargs)throwsExceptionintnum1=0,num2=0;
/赋初始值0charoper=;
/赋初始值为空字符System.out.println(请输入两个操作数和一个操作符);
System.out.println(输入第一个操作数:
);
/*使用输入流从键盘接收字符串*/BufferedReaderbr1=newBufferedReader(newInputStreamReader(System.in);
num1=Integer.parseInt(br1.readLine();
/将从键盘读入的字符串转换为整型数System.out.println(输入第二个操作数:
/*使用输入流从键盘接收字符串*/BufferedReaderbr2=newBufferedReader(newInputStreamReader(System.in);
num2=Integer.parseInt(br2.readLine();
/将从键盘读入的字符串转换为整型数System.out.println(请输入加(+)减(-)乘(*)除(/)运算符之一:
oper=(char)System.in.read();
/将从键盘读入的整型数转换为字符,switch(oper)case+:
System.out.println(和为:
+(num1+num2);
case-:
System.out.println(差为:
+(num1-num2);
case*:
System.out.println(积为:
+(num1*num2);
case/:
System.out.println(商为:
+(num1/num2);
System.out.println(未知的运算符!
辽宁机电职业技术学院,DesignedByChiyong2008,4.4.1循环结构概述(1-1),循环语句用于反复执行一段代码,直到满足某种条件为止。
Java语言有三种循环语句:
while、dowhile和for循环语句完整的循环结构应该包含四个组成部分:
(1)初始化部分(initialization):
用来设置循环的初始条件,如设置计数器的初始值。
(2)判断部分(estimation):
是一个关系或布尔表达式,用来判断循环是否可以继续运行的条件(3)迭代部分(iteration):
修改循环初始条件,用来控制循环的次数,如使计数器的值自增或自减。
(4)循环体部分(body):
循环中反复执行的代码。
辽宁机电职业技术学院,DesignedByChiyong2008,4.4.2while循环,while循环又称为“当型”循环,意指:
当条件成立时循环执行,,while语句的语法格式为:
while(条件判断表达式)循环体语句块;
while语句首先计算条件判断表达式,若表达式值为true,则执行语句块,循环后,再对表达式进行判断,直到表达式的值为false时,停止执行语句块。
while语句中的语句块就是循环体,循环体中应当有改变表达式值的迭代语句,否则,会造成程序无限循环的情况。
而初始化循环条件的语句应当在while循环的前面设置。
辽宁机电职业技术学院,DesignedByChiyong2008,例4-3:
计算2的N次幂,publicclassTestpublicstaticvoidmain(Stringargs)throwsExceptionintx=2;
intN=1;
/初始化循环变量System.out.println(输入要计算的幂数:
intend=Integer.parseInt(newBufferedReader(newInputStreamReader(System.in).readLine();
while(Nend)x*=2;
/计算x=x*2N+;
System.out.println(2的+N+次幂是:
+x);
辽宁机电职业技术学院,DesignedByChiyong2008,4.4.3dowhile循环,dowhile循环又称为“直到型”循环,意指:
直到条件不成立时循环才终止执行。
dowhile语句的语法格式为:
do循环体语句块;
while(条件判断表达式);
说明:
1)dowhile语句先执行循环体中的语句块,再计算while后面的条件判断表达式。
因为dowhile循环先执行语句块,后进行条件判断,因此,语句块至少被执行一次。
2)若条件判断表达式为true,继续执行语句块,否则,跳出循环,执行while后面的语句。
辽宁机电职业技术学院,DesignedByChiyong2008,4.4.4for循环,如果已知循环要执行的次数,可以使用for循环,会使程序的结构更清晰。
但其实for循环可以替代其它任何类型的循环。
for语句由四部分构成,语法格式为:
for(初始化表达式;
条件判断表达式;
迭代表达式)循环体语句块;
初始化表达式只在循环开始时执行一次;
条件判断表达式决定循环是否执行的条件,每次循环开始时计算该表达式,当表达式返回值为true时,执行循环,否则,循环结束;
而迭代表达式是在每次循环结束时调用的表达式,用以改变初始化表达式中变量的值,结果返回给条件判断表达式,如条件判断表达式值为false,退出循环,否则,继续执行语句块。
因此,for循环的执行次序是:
辽宁机电职业技术学院,DesignedByChiyong2008,For循环与while循环的的关联,以上三个表达式是可选部分(但分号不能省略),如果for语句中没有这三个表达式任一个,便会产生特殊效果:
1)若省略表达式,可以在for循环之前另行书写它,效果相同;
2)若省略表达式,相当于无限循环;
3)若省略表达式,可以在for循环体中另行书写它,效果相同;
若省略表达式,则完全等同于while语句,如求1+2+99的和:
若省略全部这三个表达式,相当于一个无限循环while(true);
虽然for循环的表达式可以省略,但为了程序的可读性,最好不要这样做。
for(;
i100;
)sum=sum+i;
i+;
while(i100)sum=sum+i;
辽宁机电职业技术学院,DesignedByChiyong2008,4.5跳转语句,在分支、循环体或语句块中,可能需要根据某种情况,控制程序退出循环或跳过某些语句。
break、continue和return能实现以上功能,它们的功能简述如下:
辽宁机电职业技术学院,DesignedByChiyong2008,4.5.1break语句,例4-4:
计算19这几个整数的平方。
publicclassTestBreakpublicstaticvoidmain(Stringargs)inti=0;
while(true)/条件永远为真/循环开始i+;
if(i=10)/当i超过9时,结束循环System.out.println(Ok,runbreak.);
/执行该语句跳出while循环System.out.print(i+*+i+=+i*i+);
/循环结束System.out.println(Encounterbreak!
/跳出循环执行的第1条语句,【运行结果】1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=81Ok,runbreak.Encounterbreak!
辽宁机电职业技术学院,DesignedByChiyong2008,4.5.2contiune语句,continue语句用于跳过循环体中当次循环的该语句后的其他语句,转到下次循环继续判断条件表达式的值,以决定是否继续循环。
例4-5:
输出19中除6以外所有偶数的平方。
publicclassTestContinuepublicstaticvoidmain(Stringargs)for(inti=2;
iContinue!
continue;
/修改i值,并判断i=9System.out.println(i+*+i+=+i*i+);
/i为偶数,计算平方值/循环结束System.out.println(Finished,bye!
/循环结束的第1条语句,【运行结果】2*2=4i=3-Continue!
4*4=16i=5-Continue!
i=6-Continue!
i=7-Continue!
8*8=64i=9-Continue!
Finished,bye!
辽宁机电职业技术学院,DesignedByChiyong2008,return语句用于从块体中返回到方法的调用处。
4-6:
return语句示例,publicclassTestReturnpublicstaticintshow1(inta)if(a=3)return1;
elseSystem.out.println(a3);
return0;
publicstaticvoidshow2()for(inti=0;
i+)if(i=10)return;
System.out.println(i=+i);
publicstaticvoidmain(Stringargs)System.out.println(show1
(2);
show2();
4.5.3return语句,【运行结果】:
a30i=0i=1i=2i=3i=4i=5i=6i=7i=8i=9,辽宁机电职业技术学院,DesignedByChiyong2008,总结:
Java的流程控制结构分为:
顺序结构、分支结构和循环结构流程控制中的跳转语句有:
break、continue、returnbreak语句用于跳出当前循环或switch分支结构(注意不能单独用于if语句);
continue语句用于跳过当次循环;
return语句用于返回到方法的调用处。
ThankYou!