内容正文:
for语句
算法与程序设计—C#
同步精品课堂
河北科技技术出版社
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学目标
一
知识与能力目标:
1、掌握C#循环语句for语句的执行流程
2、掌握for语句格式的书写
4、掌握学习for语句循环使用的方法
3、掌握for语句的实际应用案例
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
导入新课
二
导入新课
在使用计算机时,我们经常会遇到需要对相同的操作重复多次执行的情况,例如求n个数累加的和,这个时候就需要用到循环结构语句来进行解决问题。
C#提供了三种循环结构语句,本节课我们先学习循环语句中的for语句。
新知讲授
三
循环语句
1、定义
循环语句是重复多次处理语句或执行代码的结构,当条件为true,程序开始进入循环,每执行一次就会判断一次条件,当条件为false时,不再执行循环,继续执行循环语句后面的程序代码语句。
2、分类
C#提供了三种循环结构语句,分别是for语句、while语句和do…while语句。
它们三种语句可以完成类似的功能,但这三种语句控制结构的方式不同。
(本节课先对for语句进行讲解)
新知讲授
三
for语句
1、语法格式
for循环是C#中最常用、最灵活的一种循环结构,for循环是用于循环次数已知的情况。
for循环常用的语法格式如下:
for(初始化;判断语句;循环变量)
{
循环体;
}
新知讲授
三
for语句
2、详细说明
①、初始化:用于对变量进行初始化或赋值。
②、判断语句:一个条件或逻辑表达式,用于控制循环执行的判断语句,当其值为true时,执行该循环,当其值为false时,结束并跳出循环。
③、循环变量:在循环结束后,一般用于改变控制循环的变量,在判断语句为true时执行,否则跳出循环。
④、for循环中的三个控制参数用分号进行分隔。当初始化循环控制变量时,如果有几个变量的初始化,则各个表达式之间用逗号隔开。
新知讲授
三
for语句
3、执行流程
⑤、for循环内定义的变量,其作用域仅限于该for语句中,跳出for循环,该变量失效。
(1)进行初始化。
(2)计算判断语句的值,若为true,执行循环,若为 false,不执行循环。
(3)改变循环变量,再继续执行(2)的判断语句。
循环结束,执行for循环后面的语句。
新知讲授
三
for循环语句的深入应用
for(表达式1;表达式2;表达式3){}
for循环在具体使用时,有很多种变体形式,例如,可以省略“表达式1”,或省略“表达式2”,或省略“表达式3”,或者3个表达式都省略。
1、省略表达式1的情况
for语句一般形式中的表达式1可以省略,此时应在for语句之前给循环变量赋初值。
注意省略表达式1时,其后的分号不能省略。
例:for(;i<=100;i++){}
新知讲授
三
for循环语句的深入应用
在使用for循环时,表达式2也可以省略,即没有判断循环的条件,此时编译系统将循环条件默认为真,循环将无终止地循环下去,这种情况可以在循环体重设置条件控制循环。(死循环)
2、省略表达式2的情况
例:for(i=1;;i++){
sum=sum+i;
}
案例为死循环语句;但若使其实现1+2+3+…+100后结束循环,则可以在循环体中加上控制条件,如下所示:
for(i=1;;i++){
if(i>100){
break;
}
sum=sum+i;
}
新知讲授
三
for循环语句的深入应用
在使用for循环时,表达式3也可以省略,即没有设置用来改变循环变量的语句,循环将无终止地循环执行下去,但此时程序设计者可以在循环体中加上用来改变循环变量的语句。
3、省略表达式3的情况
例:for(i=1;i<=100;){
sum=sum+i;
i++;
}
此时,在for循环的循环体内,对变量i这个循环变量的值进行了改变,这样才能使程序随着循环的进行逐渐趋近并满足程序终止条件。程序在执行时,会跳过表达式3这一步,其他过程不变。
新知讲授
三
for循环语句的深入应用
另外表达式3不一定都要写成如i++这样的形式,要根据循环变量的实际变化规律而定,如可以写成这样的形式:i=i+2或i=i*3…。
4、省略表达式1、3的情况
当for语句中只有表达式2时,即只给循环条件。此时可以在程序的适当位置对循环变量赋初值和改变循环变量的值。
例:int i=1,sum=0;
for(;i<=100;){
sum=sum+i++;
}
新知讲授
三
for循环语句的深入应用
for循环语句中的3个表达式都可以省略,这种情况即不设初值,没有判断条件(认为表达式2为真值),循环变量不增值,将无终止的执行循环体。
例:for(;;){}语句;
在实际应用中程序设计者可以将这三个内容分写在程序的适当位置。
5、三个表达式都省略的情况
例:int i=1,sum=0;
for(;;)
{
if(i>100)
{
sum=sum+i++;
}
}
Console.WriteLine(sum);
新知讲授
三
for循环的嵌套
一个循环里可以包含另一个循环,组成循环的嵌套;而里层循环还可以继续进行循环嵌套,构成多层循环结构。
for循环中嵌套for循环,格式如下:
for(表达式1;表达式2;表达式3){
语句组;
for(表达式1;表达式2;表达式3){
语句组;
}
}
师生互动
四
for循环实例
1、编程计算1*2*3…*(n-1)*n的值
明确编程步骤:
(1)定义变量result,用于存储最终的阶乘结果;
(2)定义初始化语句的计数变量i;
(3)确定条件判断语句,循环总共进行n次
(4)确定条件控制语句,计数变量i每次循环完毕都+1;
循环体语句,每次用变量result乘以计数。
师生互动
四
for循环实例
1、编程计算1*2*3…*(n-1)*n的值
编程如下:
运行结果:
师生互动
四
for循环实例
2、编程输出九九乘法表
编程过程:
本题应使用for循环的嵌套进行编程,第一层循环可以视为对乘法表行数的控制,同时也是每一个乘法公式的第二个因数;第二层循环控制乘法表的列数,列数的最大值应该等于行数,所以第二层循环的条件应该是在第一层循环的基础上建立的。
学生思考
师生互动
四
for循环实例
2、编程输出九九乘法表
编程如下:
师生互动
四
for循环实例
2、编程输出九九乘法表
运行结果:
随堂练习
五
1、公园里有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的,到第七天的时候,猴子睁开眼时发现只剩下一个桃子,问公园里刚开始有多少桃子?(请编程实现)
答案:
int p = 1;
for(int i=1;i<=6;i++){
p=(p+1)*2;
}
随堂练习
五
答案:
Console.WriteLine(p);
Console.ReadKey();
解析:逆向思维,已知第七天猴子只剩下一个桃子,那么第六天猴子吃了一个桃子后剩下两个桃子,第五天吃了一个桃子后剩下四个桃子,以此类推。设桃子总数为p,因为猴子每天吃掉桃子总数的一半且扔掉一个坏的,所以反推得出 p=(p+1)*2 ,p的初始值为1,然后循环计算p的值,直到计算出终值结束。
随堂练习
五
2、 下列 for 循环的运行结果是( )。
for(int i=1;i<=6;i++){
Console.Write(i++);
}
A. 123456 B. 135 C. 246 D. 1356
答案:B
解析:阅读程序可知,i的初值为1,符合判断条件,执行循环体i++,此时输出1,但i的值加1,再进行i的自增,循环往复,输出3和5,此时i的值为6,再进行i++,i的值变为7不再符合条件,跳出循环,因此答案为135。
随堂练习
五
3、下面循环语句的执行次数为( )次 。
for(int i=0;i<=7;i+=2){}
答案:4
解析:已知变量i的初值为0,i的值每次递增2,所以i的值为0、2、4、6时在符合循环条件内,所以循环的执行次数为4次。
4、当执行语句for(;;){}时,会造成程序陷入死循环的状态。( )
答案:√
解析:语句for(;;){}三个表达式都省略,无条件跳出循环,造成死循环,题意正确。
随堂练习
五
5、判断下列语句是否正确:
for(int i=0 , i<3 , i++){ Console.WriteLine(i);}
答案:×
解析:for语句三个表达式之间使用“;”进行分隔,上述程序使用错误。
6、for 循环是先判定表达式,后执行循环体语句。( )
答案:√
解析:根据for循环语句的执行流程得知,for循环语句也是先判断条件表达式,符合条件后,执行循环体语句,题意正确。
作业讲解
六
1、编程实现打印10-1
编程示例:
for(int i=10;i>=1;i--)
{
Console.WriteLine(i);
}
运行结果示例:
作业讲解
六
2、编程实现向控制台打印10遍“Hello,World!”
编程示例:
for(int i=0;i<10;i++)
{
Console.WriteLine(“Hello,World!”);
}
运行结果示例:
七
课堂小结
感谢观看
$$