您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 49gjm_Java第4章(流程控制)
1第4章郭建民流程控制2通过本章的学习,主要掌握以下知识点:顺序结构分支结构(选择结构)循环结构本章的重点:分支程序设计循环程序本章的难点:多重循环程序3三种基本流程结构:•顺序结构•分支结构(选择结构)•循环结构4Java语言的控制分支语句:if-else,switch循环语句:while,do-while,for与程序转移有关的其它语句:break,continue,return例外处理语句:try-catch-finally,throw54.1语句与复合语句语句可以是以分号“;”结尾的简单语句,也可以是用一对花括号“{}”括起来的复合语句。例如:System.out.println(“HelloWorld”);x=a+8;y=x0?x:-x;s=TextBox1.getText();a=Integer.parseInt(s);6复合语句也称语句块,是指由一对花括号括起来的若干条简单语句。Java不允许在两个嵌套的复合语句内声明两个同名的变量。如下面的代码在编译时将会出错。publicstaticvoidmain(Stringargs[]){inta;……{intb;inta;//错误,因变量a前面已定义……}}7语句1顺序结构语句24.2顺序结构84.3.1if条件语句if语句是一种“二选一”的控制结构,即给出两种可能的执行路径供选择。4.3分支结构9格式1(双路条件选择结构):if(条件表达式){语句序列1}else{语句序列2}双路条件选择结构FT条件表达式语句序列2语句序列110格式2(单路条件选择结构):if(条件表达式){语句序列}FT条件语句序列单路条件选择结构11格式3(多重条件选择结构):if(条件表达式1){语句序列1}elseif(条件表达式2){语句序列2}......elseif(条件表达式n){语句序列n}else{语句序列n+1}多重条件选择结构TF条件表达式1语句序列1TF条件表达式2语句序列2TF条件表达式n语句序列n语句序列n+112条件语句if-elseif(boolean-expression1){statements1;}elseif(boolean-expression2){statements2;}……elseif(boolean-expressionN){statementsN;}else{statementsElse;}13条件语句if-else布尔表达式boolean-expression是任意一个返回布尔数据类型的表达式,而且必须是(比C或C++要严格)。与C或C++一样,每个单一语句后面都要有分号。为了增强程序的可读性,应将if或else后的语句用{}括起来。else子句是任选的,不能单独作为语句使用,它必须和if语句配对使用,并且总是与离它最近的if配对。if(12){System.out.println(“1issmallerthan2”);}else{System.out.println(“CanNOTreachhere!”);}14//app4_1.javaif语句的应用publicclassapp4_1{publicstaticvoidmain(Stringargs[]){inta=1,b=2,c=3,max,min;if(ab)max=a;elsemax=b;if(cmax)max=c;System.out.println(“Max=”+max);min=ab?a:b;min=cmin?c:min;System.out.println(“Min=”+min);}}【例4.1】找出三个整数中的最大值和最小值。15程序运行结果:Max=3Min=1【例4.1】续16【例4.2】给出一个分数,按不同的分数段将其评定为A、B、C、D和E五个档次之一。publicclassapp4_2{publicstaticvoidmain(Stringargs[]){inttestscore=86;chargrade;if(testscore=90){grade=’A’;}elseif(testscore=80){grade=’B’;}elseif(testscore=70){grade=’C’;}elseif(testscore=60){grade=’D’;}else{grade=’E’;}System.out.println(“评定成绩为:”+grade);}}17格式:switch(表达式){case常量表达式1:语句序列1;break;case常量表达式2:语句序列2;break;......case常量表达式n:语句序列n;break;default:语句序列n+1;break;}4.3.2switch选择语句18多分支语句switch的几点说明表达式expression的返回值类型必须是这几种类型之一:int、byte、char、short。case子句中的值value必须是常量(是具体的值或者final型),不能是变量,而且所有case子句中的值应是不同的。default子句是任选的。break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。如果某个case分支后没有break语句,程序将不再做比较而执行下一个分支。switch语句的功能可以用if-else语句来实现,但某些情况下,使用switch语句更简炼。19Switch简单举例1inta=100,b=20,c;charoper=‘+’;switch(oper){case‘+’:c=a+b;break;case‘-’:c=a-b;break;default:c=a*b;break;}20Switch简单举例2intscore=2;switch(score){case4:System.out.println(Excellent);case3:System.out.println(Good);case2:System.out.println(Fair);case1:System.out.println(Failed);break;default:System.out.println(Incorrectvalue!);}请问:如果score==2,输出结果是?21【例4.3】利用switch语句来判断给定表达式中的运算符,再输出计算后的结果。//app4_3.javaswitch语句的应用publicclassapp4_3{publicstaticvoidmain(Stringargs[])throwsException{inta=100,b=6;charoper;System.out.println(“请输入运算符:”);oper=(char)System.in.read();switch(oper){case‘+’://输出a+bSystem.out.println(a+”+”+b+”=”+(a+b));break;22case‘-’://输出a-bSystem.out.println(a+”-”+b+”=”+(a-b));break;case‘*’://输出a*bSystem.out.println(a+”*”+b+”=”+(a*b));break;case‘/’://输出a/bSystem.out.println(a+”/”+b+”=”+((float)a/b));break;default://输出字符串System.out.println(“输入的符号不正确!”);}}}【例4.3】续23程序运行结果:请输入运算符:/100/6=16.666666【例4.3】续244.4.1while语句一般语法结构:while(条件表达式){循环体}4.4循环结构25while语句的循环执行过程如图所示。TFwhile循环语句的流程条件表达式循环体26循环语句while[initialization]//初始化条件while(termination){//循环条件body;//循环体[iteration;]//迭代变更循//环条件}当表达式termination为true时,执行{}中的语句,否则终止循环。tbfalsetrue27while举例inti=0;while(i3){i++;System.out.println(i=+i);}输出:?28【例4.4】计算Fibonacci序列的前16项。Fibonacci序列的通项公式为:3102121nfffffnnn29//app4_4.javawhile语句的应用publicclassapp4_4{publicstaticvoidmain(Stringargs[]){finalintMAX=15;//定义常量MAX=15inti=0,j=1,k=1;while(kMAX){System.out.print(””+i+””+j);i=i+j;//计算Fibonacci序列中的下一个数j=i+j;//计算Fibonacci序列中的下一个数k=k+2;//用于改变循环的条件表达式的值}System.out.println();}}【例4.4】续30程序运行结果:01123581321345589144233【例4.4】续314.4.2do-while语句一般语法结构:do{循环体}while(条件表达式);32do-while循环语句的结构如图4.6所示。FTdo-while循环语句的流程条件表达式循环体33循环语句do-while[initialization]//初始化条件do{body;//循环体[iteration;]//迭代变更循//环条件}while(termination);//循环条件首先执行一遍{}中的语句,当表达式termination为true时,继续执行{}中的语句,否则终止循环。说明:至少运行一次循环tbfalsetrue34do-while举例inti=0;do{i++;System.out.println(i=+i);}while(i0);输出:?----------Run----------i=1......i=2147483647i=-2147483648----------Run----------i=1......i=2147483647i=-214748364835【例4.6】从键盘上输入一个数n,然后计算1+2+…+n的和。//app4_6.javadowhile循环的应用importjava.io.*;publicclassapp4_6{publicstaticvoidmain(Stringargs[])throwsIOException{intn,i=1,sum=0;Stringstr;BufferedReaderbuf;buf=newBufferedReader(newInputStreamReader(System.in));36do{System.out.print(“输入正整数:”);str=buf.readLine();n=Integer.parseInt(str);}while(n=0);//要求输入数n必须大于0,否则一直要求重复输入while(i=n)sum+=i++;//计算和System.out.println(”1+2+…+”+n+”=”+sum);//输出结果}}程序运行结果:输入正整数:-6//当输入负数时,程序要求重复输入数据输入正整数:10//只有输入正数时,程序才继续往下运行1+2+…+10=55【例4.6】续374.4.3for循环语句基本使用格式:for(表达式1,条件表达式,表达式2){循环体}38for循环语句的执行过程如图所示。FTfor循环结构的流程条件表达式表达式1循环体表达式239循环语句forfor(Init;Termination;Iterat){body;//循环体}Init//初始化条件Termination//循环条件I
本文标题:49gjm_Java第4章(流程控制)
链接地址:https://www.777doc.com/doc-1908793 .html