




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章控制结构1教学目标(1) 使用单分支if语句实现选择控制(2) 使用双分支if-else语句实现选择控制(3) 使用嵌套的if语句和多分支if语句实现选择控制(4) 使用switch语句实现选择控制(5) 使用选择结构实现判断闰年、判断一个人的生肖属相(6) 使用while循环语句实现循环控制,理解计数器控制的循环(7) 使用do-while循环语句实现循环控制,理解标记控制的循环(8) 使用for循环语句实现循环控制,理解三种循环结构的异同(9) 掌握嵌套循环的使用(10) 掌握break语句、continue语句,理解用户确认的循环。(11) 综合应用选择结构和循环结构实现一些有趣示例:求π值、百钱买白鸡问题、输出素数。2内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数33.1选择结构4内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数53.1.1单分支结构6if(布尔表达式){
语句(组);}3.1.1单分支结构7示例:简化示例程序:程序清单3-1SimpleEvenOddTest.java83-1下列代码的输出是:xis0xis1xis2xis3ABCD提交intx=0;if(x<4){x=x+1;}System.out.println("xis"+x);单选题1分内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数93.1.2双分支结构if(布尔表达式){
语句组1}else{
语句组2}10示例:程序清单3-2SimpleEvenOddTest_v1.java3.1.2双分支结构条件运算符简化双分支结构:11等价123-2用if语句表示如下分段函数f(x),下面程序不正确的是()f=3*x;if(x>=3)f=2*x/(x-1);if(x<3)f=3*x;if(x>=3)f=2*x/(x-1);if(x<3)f=3*xelsef=2*x/(x-1);if(x<3)f=3*x;f=2*x/(x-1);ABCD提交单选题1分内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数133.1.3多分支结构:嵌套if和多分支if-else嵌套if语句是指在单分支if语句或双分支if-else语句的语句组中嵌入单分支if语句或双分支if-else语句,而内层的单分支if语句或双分支if-else语句的语句组可以继续嵌入单分支if语句或双分支if-else语句。Java语言对嵌套if语句的嵌套深度没有限制。143.1.3多分支结构:嵌套if和多分支if-elseif(布尔表达式1){ if(布尔表达式2){
语句组1}else{
语句组2}
语句组3}else{ if(布尔表达式3){
语句组4}
语句组5}153.1.3多分支结构:嵌套if和多分支if-else163.1.3多分支结构:嵌套if和多分支if-else173.1.3多分支结构:嵌套if和多分支if-else18else语句匹配同一语句块中最近的if语句。else语句与哪个if匹配?注意:课堂思考下面代码中有什么错误?19编译通过,逻辑错误!203-3下列代码的输出结果:toohottoocoldjustrighttoohottoocoldjustrightABCD提交doubletemperature=50;if(temperature>=100)System.out.println("toohot");elseif(temperature<=40)System.out.println("toocold");elseSystem.out.println("justright");单选题1分内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数213.1.4多分支结构:switchswitch语句的一般形式如下:switch(表达式){case常量表达式1:语句组1 break;case常量表达式2:语句组2 break;…case常量表达式N:语句组N break;default:语句组N+1}(1)switch语句中的表达式必须能计算出一个char、byte、short、int、枚举或者String类型的值,并且必须总是用圆括号括住。(2)case语句中,关键字case之后只能是常量表达式。更具体地说,这里的表达式不能包含变量。并且,常量表达式值的数据类型必须与表达式值的数据类型相同。(3)当表达式的值与某个case语句的值相等时,执行从该case开始的语句,直到遇到第一个break语句或者到达switch语句的末尾。223.1.4多分支结构:switchswitch语句的一般形式如下:switch(表达式){case常量表达式1:语句组1 break;case常量表达式2:语句组2 break;…case常量表达式N:语句组N break;default:语句组N+1}(4)关键字break后加分号(;)构成了break语句,break语句是可选的。break语句会立刻终止switch语句,让程序执行流程转到switch语句之后。(5)default语句是可选的,当所有case语句的值和表达式的值无法匹配时,就执行default对应的语句组N+1。示例:程序清单3-3SwitchGradeDemo.java233.1.4多分支结构:switch直通(fallthrough)行为:指当一个case分支的语句组在执行完毕后,如果没有遇到break语句,则程序继续向下执行下一个case分支的语句组,直到碰到break语句或switch语句结束。24简化253-4执行下列switch语句之后,y是多少?
[填空1]
x=3;y=3;switch(x+3){case6:y=1;default:y+=1;}填空要求:直接写数字作答正常使用填空题需3.0以上版本雨课堂填空题1分内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数263.1.5switch新特性(1)引入箭头“->”代替了冒号“:”。(2)箭头->后的语句如果只有一条,可以省略花括号;如果有多条语句时,必须用花括号括起来。而冒号:后的语句不需要使用花括号。(3)不能混合使用箭头和冒号。(4)关键字case之后可以跟多个值,这些值之间用逗号分隔。(5)无需break语句。27switch新形式改写3.1.5switch新特性示例:程序清单3-4NewSwitchGrade.javaswitch表达式中的case后也可以跟多个标签,用逗号分隔。switch表达式还可以使用枚举类型。例如,一个枚举类型如下:enumSeason{SPRING,SUMMER,AUTUMN,WINTER}28StringuserType=switch(userCode){ case0->"钻石会员"; case1,2->"黄金会员"; case3->"白银会员"; default->"大众会员";};Seasonseason=Season.SPRING;Stringlabel=switch(season){ caseSPRING->"春天"; caseSUMMER->"夏天"; caseAUTUMN->"秋天"; caseWINTER->"冬天"; };3.1.5switch新特性switch表达式在使用整数或String值作为圆括号中的操作数时,必须要有一个default,因为无论操作数是什么,这个表达式都必须要具有一个值。如果操作数是null时,会抛出一个NullPointerException。29内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数303.1.6示例:判断闰年在公历中,闰年有366天,二月份是29天,平年有365天,二月份是28天。一个年份是否闰年的判断条件是:可以被4整除但不能被100整除,或者可以被400整除。示例:程序清单3-5TestLeapYear.java31内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数323.1.7示例:判断生肖属相在我国,十二生肖,又称为属相,是十二地支的形象化代表,包括:(子)鼠、(丑)牛、(寅)虎、(卯)兔、(辰)龙、(巳)蛇、(午)马、(未)羊、(申)猴、(酉)鸡、(戌)狗、(亥)猪。生肖是基于12年一个周期,示例:程序清单3-6TestChineseZodiac.java33内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数343.2循环结构需要循环操作的示例某段信息重复输出100次寻找前50个素数并输出查找并输出1-1000范围内的水仙花数3种循环While循环do-while循环for循环35内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数363.2.1while循环while循环一般形式373.2.1while循环计算1-100之间的累加和,即计算1+2+…+100的值程序清单3-7WhileSum.java概念:循环控制变量:控制循环是否继续的变量,如示例中的变量i循环次数:循环体执行次数计数器控制的循环:基于计数变量对循环进行控制383.2.1while循环准确理解循环次数39intsum=0,i=1;while(i<10){sum=sum+i;i++;}System.out.println(“sumis”+sum);//sumis45intsum=0,i=1;while(i<10){ sum=sum+i;}课堂思考40下面的循环体会重复多少次?这个循环的输出是什么?(a)(b)(c)内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数413.2.2do-while循环do-while循环先执行循环体一次,再判断循环继续条件。do-while循环的一般形式如下:do{//循环体语句组}while(循环继续条件);423.2.2do-while循环累加和示例:do{ sum+=i; i++;}while(i<=100);示例:程序清单3-8DoWhileDemo.java标记值控制的循环:使用标记值来控制循环的结束433.2.2do-while循环注意:尽量避免使用浮点数相等比较控制循环下面一段代码计算并输出1+0.9+…+0.1的值:doubled=1;doublesum=0;while(d!=0){sum+=d;d-=0.1;}System.out.println(sum);44这段代码从逻辑上看没问题,也能运行。然而在实际运行时,这段代码是一个无限循环。d的值会递减到接近于0的浮点数,然而不等于零。这段代码能否正确完成功能?453-5下面的代码将打印多少次“WelcometoJava”?()891011ABCD提交intcount=0;do{System.out.println("WelcometoJava");}while(count++<10);单选题1分内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数463.2.3for循环for循环的一般形式如下:47for(初始化表达式;循环继续条件;每次迭代后表达式){//循环体
语句组;}转化3.2.3for循环48转化示例:程序清单3-9ForSumDemo.java3.2.3for循环for循环的初始表达式可以是0个或多个以逗号隔开的变量声明或赋值表达式。for循环的每次迭代后表达式也可以是0个或多个以逗号隔开的表达式或语句。49for(inti=1,j=1;i*j<=81;i++,j++)
System.out.printf("%d*%d=%d\n",i,j,i*j);for(inti=1,j=1;i*j<=81;System.out.printf("%d*%d=%d\n",i,j,i*j),i++,j++);等价3.2.3for循环for循环的循环继续条件如果被省略,那么隐式地认为循环继续条件为true50513-6sum初值为0,完成下面两个循环之后,sum是否具有相同的值()相同不同AB提交for(inti=0;i<10;i++){sum+=i;}//(a)for(inti=0;i<10;++i){sum+=i;}//(b)单选题1分523-7下列代码的执行结果是()246810135791234512345678910ABCD提交for(inti=1;i<=10;i++){System.out.print(i+"");i++;}单选题1分内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数533.2.4嵌套循环嵌套循环是指一个循环体内包含一个或多个内层循环,每个内层循环还可以包含零个或多个内层循环。每当外层循环执行一次,其内部的内层循环都会重新开始执行。当嵌套循环层次是两层时,可以称为两层循环。当嵌套循环层次是三层时,可以称为三层循环。示例:打印下三角的乘法表(程序清单3-10PrintMultiplyTable.java)54553-8println语句执行了多少次?
[填空1]
作答填空题2分内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数563.2.5循环中的break语句循环结构中如果执行到break语句,会立即终止当前循环的执行示例:编写一个两位数的加法练习程序,判断正误。当用户输入‘N’时,退出加法练习。当用户输入其他字符时,继续加法练习。代码:程序清单3-11AddTestBreak.java用户确认的循环:由用户输入确认的循环需要注意的是,在嵌套循环中,break语句用于终止当前层的循环,而不是终止整个循环。示例:程序清单3-12NestLoopBreak.java57内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数583.2.6循环中的continue语句循环结构中如果执行到continue语句,会立即结束当前循环的本次执行,然后,继续当前循环的下一次执行。具体地,当执行到continue语句时,循环体中continue语句之后语句不再执行,执行流程跳转到:while循环和do-while循环会执行循环继续条件判断,for循环会执行每次迭代后表达式,然后,继续循环执行流程。示例:程序清单3-13ContinueDemo.java5960课堂思考将下面左边的for循环转换成右边的while循环,其中有什么错误?改正该错误。int
i=0,sum=0;while(i<4){if(i%3==0)continue;sum+=i;i++;}int
sum=0;for(int
i=0;i<4;i++){if(i%3==0)continue;sum+=i;}错误转换inti=0,sum=0;while(i<4){if(i%3==0){ i++; continue; }sum+=i;i++;}内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do-while循环3.2.3for循环3.2.4嵌套循环3.2.5循环中的break语句3.2.6循环中的continue语句3.2.7示例:求π值3.2.8示例:百钱买百鸡问题3.2.9示例:输出素数613.2.7示例:求π值π值的计算可以使用下面的近似值计算公式:当计算的项数越多时,π值越精确。本例要求计算到上述计算公式的最后一项的绝对值小于等于10−7时,才终止计算。设计:上述计算公式的每一项,可以分成分子和分母来看待,分子在1、-1之间变换;假设项号i从0开始,那么分母的值是(2*i+1)。然后,通过一个循环,对每一项进行累加求和。这个累加求和,直到最后一项的绝对值小于等于10−7。最后,累加和乘以4就是π的近似值。代码:程序清单3-14ComputePI.java62内容3.1选择结构3.1.1单分支结构3.1.2双分支结构3.1.3多分支结构:嵌套if和多分支if-else3.1.4多分支结构:switch3.1.5switch新特性3.1.6示例:判断闰年3.1.7示例:判断生肖属相3.2循环结构3.2.1while循环3.2.2do
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年现代制造业管理考试试卷及答案
- 2025年市场研究与分析师职业考试试题及答案
- 2025年水资源管理专业考试试卷及答案
- 2025年教师招聘考试试题及答案
- 2025年工程造价与管理知识考试卷及答案
- 物资清查盘点管理制度
- 物资采购支付管理制度
- 特技培训日常管理制度
- 特殊人员窗口管理制度
- 特殊区域垃圾管理制度
- 电缆敷设专项施工方案
- 儿童下支气管肺炎护理查房课件
- 机车高压电器-高压连接器
- ic封装公司运营管理方案
- 软件项目管理 复习题(附参考答案)
- 有机电子学课件
- 我国煤机装备制造业发展现状与展望
- 围术期患者转运专家共识(2021版)
- 工商业用户安全用气培训课件
- 产品方案技术白皮书模板(含系统架构说明书)
- 能源动力类能源与动力工程专业
评论
0/150
提交评论