1.2.3循环语句(2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2.3循环语句(2)
教学目标:了解条件语句,进一步体会算法的条件分支结构
教学重点:了解条件语句,进一步体会算法的条件分支结构
教学过程:
1.for 循环
for 循环用得最多,也是最灵活的循环语句。要学好它,需要从已经学过的while循环的身上,“挖掘”出有关循环流程的要素,这些要素隐藏在while,或do...while的背后,但它将直接体现在for循环的结构上。
(1)循环条件三要素
学习了两种循环,我们来挖掘一下循环流程中的“条件三要素”。
第一、条件一般需要进行一定的初始化操作。
请看我们用while循环实现1到100累加的代码:
sum = 0;
i =0
while i* i<= 100, sum = sum+ i; I=i+1;end
这段代码中,循环的条件是i <= 100;因此,一开始,i肯定需要一个确定的值。前面的:i = 0;这一行代码,在声明变量i的同时,也为i赋了初始值:1。这样,条件i <= 100 得以成立(因为i为1,所以i <= 100 当然成立)。
第二、循环需要有结束的机会。
程序中最忌“死循环”。所谓的“死循环”就是指该循环条件永远为真,并且,没有另外的跳出循环的机会(后面将学到)。
第三、在循环中改变循环条件的成立因素
这一条和第二条互相配套。
(2)三要素在for循环结构上体现
for 循环的语法:
for(条件初始化:条件:条件改变)
需要循环执行的语句;
end
可见,for的结构中,不仅提供了的“条件”的位置,同时也提供了条件初始化,和条件改变的位置。这三者虽然在同一行上,但并不是依次连接地执行。
条件初始化的表达式首先被执行(并且只被执行一次);
然后程序检查条件是否成立,如果成立就执行循环体中的语句,否则直接结束循环。
执行完一遍循环以后,程序执行“条件改变”语句。
1到100整数累加的程序,改为for循环写,是最合适的了:
sum = 0;
for i=1:1:100
sum=sum+i;
end
for 语句的复合结构,使得程序变得简捷。比如上面的例子中,原来while或者do...while 结构中,循环体内必须两句语句,现在只需一句.
题一:用for循环在屏幕上逐行输出数字:1~200。
分析:这需要一个变量,其值从1变到200,并且每变一次新值,就用print 语句在屏幕上输出其值。
题二:6能被1、2、3、6整除,这些数称为6的因子,请循环列出36的所有因子。
分析:求36的因子,就是求1~36中哪些整数可以整除36。
2.多层循环
有些问题需要多层循环嵌套才能解决。
继续分析一些题目:
题三:输出以下内容,要求使用两种方法,第一种方法采用单层循环,第二种方法采用双层循环。
123
456
789
方法一:
分析:单层循环的思路是:从1输出到9,并且,每当输出三个数字时,多输出一个换行符。方法二:
分析:双层循环的思路是:输出三行,每行输出三个数字。
题四:请用输出以下内容:
1
12
123
1234
12345
123456
1234567
12345678
123456789
这道题目,除非跟自已过不去,否则没有人会非要硬去用一层循环来实现。本题使用双层循环来实现实为最佳方法。
分析:外层循环用于控制输出9行;内层循环用于输出每行的数字。每一行都是从1开始,但第一行输出1个数字,第二行输出2个,第三行输出3个……
题五:请输出以下九九口诀表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=24 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=36 7*9=63 8*9=72 9*9=81
分析:你可以看出,本题和题四有很大的类似,都是要输出一个“三角形”(严格说是梯形?),所以解题思路也大致一样:输出九行。
课堂练习:第30页,练习A,练习B
小结:本节介绍循环语句及其简单应用
课后作业:第31页,习题1-2B第3、4、5、题(机上作业)