您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Java程序设计-3-流程控制
Java程序设计第三章流程控制2理解程序控制的概念运用条件语句,使用if,switch来控制程序的不同执行路径掌握for、while和do句型结构控制程序的循环执行理解并能应用break、continue和return调整程序中的流程控制结构。理解并使用断言对程序进行调试掌握Java语言中不同注释形式的区别掌握利用Scanner类实现基本的输入方法理解并能使用System.out对象中的不同输出方法掌握基本的编程技巧。3程序程序表现为完成某个功能(目标)而编写的指令集合。在整体上,程序运行是按照事先编写的指令(语句)从前到后的顺序执行,但在执行的过程中,经常会遇到基于不同条件的决策来执行不同的指令,抑或重复执行事先定义的指令来达到某种目的,但总体上程序总是顺序执行的。4一个例子编写一个程序,声明3个整型变量,用来保存3个学生的考试分数,计算他们的平均分(float类型)并输出。inta=0,b=0,c=0;a=???;b=???;c=???;aver=(a+b+c)/3;输出aver;5进一步的如果某个学生的成绩低于60分,则不参与平均分计算。inta=0,b=0,c=0;a=???;b=???;c=???;输出aver;a=60b=60c=60sum=sum+a;n++;sum=sum+b;n++;sum=sum+c;n++;aver=sum/nintsum=0,n=0;YYYY6在进一步如果有50个学生的成绩已经保存在一个整型数组中,同样基于上面规则来计算这批学生的平均分。Int[]a=newint[50];保存成绩到数组intsum=0,n=0;intx=0;输出aver;a[x]=60sum=sum+a[x];n++;aver=sum/nNYNx++x=50Y73.1句、块和空白构成Java程序的最小单位是类,而类则是由属性和方法构成。方法代表了某个具体的能力,具体的一个方法就是由为完成某个功能而编写的若干条语句组成。83.1.1语句在Java编程语言中,语句是一行由分号(;)终止的代码,它是一个完整的可执行单元。例如totals=a+b+c+d+e+f;与下式相同total=a+b+c+d+e+f;9在Java中,主要有以下的语句类型声明语句inta=0;//声明了一个整型变量Studentstu;//声明了一个类型是Student的对象表达式语句赋值表达式,自增表达式、方法调用、对象创建都可以和分号一起构成“表达式语句”System.out.println(“Welcome”);//输出字符串a=Math.abs(-3.1);//返回绝对值value=100;//为变量赋值a++;//a自增Studentstu=newStudent(“张华”);//创建一个Student类的实例,实例引用名为stu控制语句103.1.2语句块一个块(block)或一个复合语句是以上括号和下括号为边界的语句集合;块语句也被用来组合属于某个类的语句。语句块可被嵌套。//ablock语句{x=y+1;y=x+1;}11//类声明所包含的块语句publicclassMyDate{intday;intmonth;intyear;}12//一个嵌套块语句的例子while(ilarge){//循环语句快开始,用{表示a=a+i;if(a==max){//判断语句快开始,用{表示b=b+a;a=0;}//判断语句块结束,用}表示}//循环语句快结束,用}表示133.1.3空白在源代码元素之间允许空白,空白的数量不限。空白(包括空格、tabs和新行)可以改善源代码的视觉感受。{intx;x=23+54;}{intxx=23+54;}143.2逻辑判断和循环控制程序控制可以定义为对程序语句的执行顺序进行的规定。Java提供了条件语句在两种或更多的情况中做出选择,根据情况执行不同的程序语句;Java也提供了更有效的循环语句以控制那些需要重复执行的语句。153.2.1条件判断与决策1if,else语句简单的单分支语句if(布尔表达式){语句或块;}例如if(score60){System.out.println(“下次努力哦!”);}163.2.1条件判断与决策(cont.)简单的双分支语句if(布尔表达式){语句或块;}else{语句或块;}例如if(score60){System.out.println(“下次努力哦!”);}else{System.out.println(“恭喜你通过考试!”);}17expBAFT选择结构183.2.1条件判断与决策(cont.)嵌套的if,elseif(布尔表达式1){语句或块;}elseif(布尔表达式2){语句或块;}else{语句或块;}19例如if(score60){System.out.println(“下次努力哦!”);}elseif(score80){System.out.println(“恭喜你通过考试!”);}else{System.out.println(“你考的很棒!”);}203.2.1条件判断与决策(cont.)2switch语句switch语句允许程序员更多情况下选择不同的程序逻辑,当情况发生时,按照事先准备好的方法执行。switch语句的句法是:switch(expr1){caseexpr2:statements;break;caseexpr3:statements;break;default:statements;}21chargender;//性别…….switch(gender){case‘F’:case‘f’:System.out.println(”女性“);break;case‘M’:case‘m’:System.out.println(”男性“);break;}22在switch(expr1)语句中,expr1必须与int类型是赋值兼容的;byte,short或char类型可被升级;不允许使用浮点或long表达式。变量或表达式的值不能与任何case值相匹配时,可选缺省符(default)指出了应该执行的程序代码。如果没有break语句作为某一个case代码段的结束句,则程序的执行将继续到下一个case,而不检查case表达式的值。default语句一般在switch语句的最后。在switch(expr1)语句中,expr1也可以是枚举类型publicenumMonth{JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER}23TA1Fexp=1TA2Fexp=2…TAnFexp=n多分支结构24课堂练习指出输出结果x=2;y=3;if(x2)if(y2){intz=x+y;System.out.println(“zis”+z);}elseSystem.out.println(“xis”+x);25课堂练习(c.)指出输出结果x=2;y=3;if(x2){if(y2){intz=x+y;System.out.println(“zis”+z);}}elseSystem.out.println(“xis”+x);26课堂练习(c.)执行下列switch语句后y是多少?x=3;switch(x+3){case6:y=1;default:y+=1;}27课堂练习(c.)有一个函数如下,根据指定的x,输出y值y=Xx12X-11=x103X-11x=10写出程序,根据给出的百分制成绩,输出成绩等级’A’、’B’、’C’、’D’、’E’,90分以上为A,80~89为B,70~79为C,60~69为D,60分以下为E。28课堂练习(c.)编写一个程序,根据命令行参数将对应的1、2、3、4、5、6、7分别输出为星期一、星期二….星期日,如:JavaWeekDay1星期一29思考题如何提高多分支下的程序执行效率?303.2.2循环循环语句使语句或块的执行得以重复进行。Java编程语言支持三种循环构造类型:for,while和do循环。for和while循环是在执行循环体之前测试循环条件do循环是在执行完循环体之后测试循环条件。这就意味着for和while循环可能连一次循环体都未执行,而do循环将至少执行一次循环体。31FSTexp直到型循环当型循环TexpSF32for循环的句法是:for(init_expr;booleantestexpr;alter_expr){statementorblock}例如:for(inti=0;i10;i++){System.out.println(i=+i);}33增强的for循环publicclassForEnhancedDemo{publicstaticvoidmain(String[]args){int[]arrayOfInts={32,87,3,589,12,1076,2000,8,622,127};for(intelement:arrayOfInts){System.out.print(element+);}System.out.println();}}34while循环的句法:while(布尔表达式){语句或块}inti=0;while(i10){System.out.println(i=+i);i++;}System.out.println(Finally!);35do循环的句法是:do{语句或块;}while(布尔测试)inti=0;do{System.out.println(i=+i);i++;}while(i10);System.out.println(Finally!);36思考题怎么决定使用哪类循环?37循环的嵌套在一个循环体内又包含了另一个完整的循环结构,成为嵌套循环。如:while(循环条件){[语句;]while(循环条件){[语句;]}[语句;]}383.2.3跳转下列语句可被用在更深层次的控制循环语句中:break[标注];continue[标注];label:语句;Label:被用来标识循环构造的复合语句。break语句被用来从switch语句、for语句等循环语句的块中退出到预先设定的label处。当程序运行到break[标注]处时,程序跳出整个循环体的结尾处。continue语句被用来略过并跳到循环体的结尾。当程序运行到continue[标注]处时,程序跳至标识外循环的下一次循环开始处继续执行。39loop:while(true){for(inti=0;i100;i++){switch(c=System.in.read()){case-1:case`\n`://跳到最后处breakloop;....}}//endfor}//endwhile40课堂练习下面的循环程序输出结果是什么?publicclassShowErrors{publicstaticvoidmain(String[]args){for(inti=0;i10;i++);System.out.println(i+4);}}41课堂练习(c.)编写一个程序,求出1+2+3+…+100的和并输出。求出100-200间的所有素数。42用下面的方法声明,编写一个java方法,返回接收字符数组中连续字符块的个数:publicstaticintcountRuns(char[]A)43程序流程图程序流程图也叫程序框图.程序流程图的表示以3种程序结构为基础。优点历史最悠久,使用最广泛;流程控制直观,容易掌握;至今仍广泛使用.缺点可能诱导程序员过早考虑程序细节,而不是逐步求精;对于提高大型系统的可理解性作用不大;程序随意转移,导致程序结构混乱;无法表示数据结构.44起止输入输出处理判断打印输出
本文标题:Java程序设计-3-流程控制
链接地址:https://www.777doc.com/doc-637188 .html