您好,欢迎访问三七文档
1第三章控制流程江峰2控制结构结构化程序设计有三种基本结构:顺序(sequence)结构若程序中的语句(statement)是以一行一行的方式执行(例如指定语句:y=2),称此语句是顺序性语句,而此类结构称为顺序结构。分支结构若以分支语句(如if)来做程序控制的结构称作分支结构。循环结构若以循环(如for)语句来做程序控制的结构称作循环结构。3一、分支语句分支语句提供了一种程序控制机制,使得程序的执行可以跳过某些语句不执行,而转去执行特定的语句。1、条件语句2、多分支语句thenelseifcase1casenSwitchcase2……41、简单的条件语句简单if语句:if(布尔表达式){//true语句1;}语句2;……布尔表达式语句2语句1truefalse5条件语句的嵌套在实际生活中,常常会有许多条件需要判断。因此需要多个if来判断,甚至在一个if中还有多个if,称作嵌套if。语法if(布尔表达式A){语句块;if(布尔表达式B){语句块;}语句块;}6范例3_1:电费计算电力公司的电费计算标准如下:240度以下,以每度0.15元计算。240度至540度间以每度0.25元计算。超过540度,则以0.45元计算。输入一个用户的用电度数,请输出本月该用户需缴的电费。7publicclassElefee{publicstaticvoidmain(Stringargs[]){doublea,fee=0.0;System.out.println(本月您的用电度数是:+args[0]+度);a=Double.parseDouble(args[0]);if(a=0){if(a=240){fee=a*0.15;}if(a240&&a=540){fee=(a-240)*0.25+240*0.15;}if(a540){fee=(a-540)*0.45+(540-240)*0.25+240*0.15;}output(fee);}if(a0){System.out.println(请输入正数的度数!!!);}}staticvoidoutput(doubleresult){System.out.println(您需要缴的电费是:+result+元);}}javaElefee22282、复杂的条件语句复杂if语句:if(布尔表达式){//true语句1;}else{//false语句2;}下一个语句;……布尔表达式下一个语句语句1truefalse语句29条件语句的嵌套规则if(cond1)statement1;elseif(cond2)statement2;elseif(cond3)statement3;elsestatement4;if(cond1)if(cond2)statement1;elsestatement2;elseif(cond3)statement3;elsestatement4;cond1成立且cond2成立cond1成立且cond2不成立cond1不成立且cond3成立cond1不成立且cond3不成立cond1成立cond1不成立且cond2成立cond1和cond2不成立且cond3成立cond1、cond2且cond3都不成立10范例3_2求出输入的三个数a、b、c的中位数,也就是值在中间的那一个。abca\/=//=/b\\/=/c\\\11代码1if((ba)&&(ac)||(ca)&&(ab))System.out.println(Themid-numis+a);if((ab)&&(bc)||(cb)&&(ba))System.out.println(Themid-numis+b);if((ac)&&(cb)||(bc)&&(ca))System.out.println(Themid-numis+c);a=b=c=212代码2if((b=a)&&(a=c)||(c=a)&&(a=b))System.out.println(Themid-numis+a);if((a=b)&&(b=c)||(c=b)&&(b=a))System.out.println(Themid-numis+b);if((a=c)&&(c=b)||(b=c)&&(c=a))System.out.println(Themid-numis+c);a=b=c=213代码3if((b=a)&&(a=c)||(c=a)&&(a=b))System.out.println(Themid-numis+a);elseif((a=b)&&(b=c)||(c=b)&&(b=a))System.out.println(Themid-numis+b);elseif((a=c)&&(c=b)||(b=c)&&(c=a))System.out.println(Themid-numis+c);a=b=c=214代码4if(ab)//abif(bc)//abcSystem.out.println(Themid-numis+b);elseif(ac)//b=caSystem.out.println(Themid-numis+c);else//ba=cSystem.out.println(Themid-numis+a);else//a=bif(ac)//ca=bSystem.out.println(Themid-numis+a);elseif(bc)//a=cbSystem.out.println(Themid-numis+c);else//a=b=cSystem.out.println(Themid-numis+b);a=b=c=215TheartofProgramming!D.E.Knuth162、多分支语句(switch语句)在if语句中,布尔表达式所表示的条件只可能有两种:true或false。若情况更多时,就需要另一种可提供更多选择的语句:switch。语法:switch(布尔表达式){case值1:语句1;break;case值2:语句2;break;……case值N:语句N;break;default:缺省语句;}17范例3_3“石头、剪刀、布”游戏:以1、2、3分别代表石头、剪刀、布。根据输入的整数给出不同的显示。18代码1switch(count){case1:System.out.println(你出锤头!);case2:System.out.println(你出剪刀!);case3:System.out.println(你出布!);default:System.out.println(你出错了!);}count=219代码2switch(count){case1:System.out.println(你出锤头!);break;case2:System.out.println(你出剪刀!);break;case3:System.out.println(你出布!);break;default:System.out.println(你出错了!);break;}count=220二、循环语句for循环语法:for(初始值;继续条件;调整值){//循环主体}继续条件?下一个语句执行循环主体truefalse调整变量值初始值例如:for(i=0;i=11;i++){total+=Rain[1][i];}21嵌套式for循环有时会因为一些较复杂的求值运算,而需要有嵌套式for循环。范例3_4:范例说明:给定一个整型的数组,求出数组中值最大的元素。22publicclassFindmax{publicstaticvoidmain(Stringargs[]){inta[][]={{8,4,2,1},{9,0,7,5},{-10,12,-5,3}};inti,j,max;max=a[0][0];for(i=0;i3;i++){for(j=0;j4;j++)if(a[i][j]max)max=a[i][j];}System.out.println(max=+max);}}范例3_4:84219075-1012-5323while循环语法:while(继续的条件){//循环主体;}继续条件?下一个语句语句truefalse24范例3_5:精打细算范例说明有两位名叫“钱弥”与“郝晶熙”的人,想比赛看谁存的钱多。两个人的本钱刚开始都一样,都有10000元。钱弥存入一家利率比较高的银行,为年利率10%,但采用单利计算。郝晶熙则更会算了,存入一家年利率只有5%,但采用复利计算的银行。请问郝晶熙小姐的钱要多少年后会比钱弥多?钱迷好精细25publicclassInterestRate{publicstaticvoidmain(Stringargs[]){floata=10000f,b=10000f;//本钱floatA,B;//存款额inty=0;//年份A=a;B=b;//A是钱弥,B是郝晶熙while(A=B){y=y+1;A=a+(a*(0.1f*y));//单利计算B=B*1.05f;//复利计算}System.out.println(在+y+年后);System.out.println(郝晶熙的钱=+B);System.out.println(将多过于);System.out.println(钱弥的钱=+A);}}执行结果:在27年后郝晶熙的钱=37334.508将多过钱弥的钱=37000.026do…while循环do…while循环与while循环的不同在于:while是先检查条件是否成立后执行语句,而do…while是先执行一次语句后再检查继续的条件。语法:do{//循环主体}while(继续条件)下一个语句true语句继续条件?false27三、跳转语句break与continue语句提供给for,switch,while,do等做额外的控制。下一个语句true语句继续条件?语句breakfalse下一个语句true语句继续条件?语句continuefalse28四、注释语句(a)//单行注释。这种注释风格源于C++。例子://这是一个注释(b)/*……*/多行注释。这种注释风格源于C语言,C++和Java都承继下来。例子:/*注释行1注释行2*/(c)/**……*/文档注释。这种注释可由javadoc命令处理。29文档注释java提供一种C/C++所不具有的文档注释方式。其核心思想是当程序员编完程序以后,可以通过JDK提供的javadoc命令,生成所编程序的API文档,而该文档中的内容主要就是从文档注释中提取的。该API文档以HTML文件的形式出现,与java帮助文档的风格与形式完全一致。凡是在“/**”和“*/”之间的内容都是文档注释。例如:/**这是一个文档注释的例子,主要介绍下面这个类*/publicclassDocTest{/**变量注释,下面这个变量主要是充当整数计数*/publicinti;/**方法注释,下面这个方法的主要功能是计数*/publicvoidcount(){}}30课堂小结介绍了Java语言的控制流程;顺序(sequence)结构;分支结构;循环结构;跳转语句和注释语句。31谢谢!
本文标题:第三章 控制流程
链接地址:https://www.777doc.com/doc-3992957 .html