浅谈中职计算机C语言教学中的三种循环结构
2019-06-11姜研艳
姜研艳
摘 要:C语言简洁紧凑,灵活方便,是一种广泛使用的程序设计语言,它具有功能丰富、表达能力强,使用灵活方便等特点。像许多计算机语言一样,C语言有三种基本结构:顺序结构、选择结构、循环结构。而循环结构是重点也是难点。本文对C语言中的三种循环做了分析和比较,让学生更容易理解和掌握C语言。
关键词:C语言;while循环;do..while循环;for循环
C语言简洁紧凑,灵活方便。成为最受欢迎的语言之一,同时也是中职计算机学校必学的一门语言课。在程序设计中对于那些需要重复执行的操作应该采用循环结构来完成,循环结构又称重复结构。利用循环结构处理各类重复操作既简单又方便。循环程序设计是C语言的重点也是难点。循环程序主要有三种类型。while循环,do…while循环。for循环。因此,掌握三种类型之间的区别和联系则显得尤为重要。它们三者的区别和联系主要体现在以下几个方面:
一、一般形式:
1、while循环:
while(条件表达式)
{语句序列;}
2、do…while循环
do
{语句序列;}
while(条件表达式);
3、for循环
for(表达式1;表达式2;表达式3)
{语句序列;}
二、执行过程:
while循环:
当条件表达式语句的返回的值为真的时候,程序就会执行下面大括号里的语句序列中的语句,当程序执行完这个执行语句序列中的语句的时候,程序就会再一次的回来执行这个条件表达式语句,当程序检查这个条件表达式语句的结果还是真时,程序就会再一次的执行这个执行语句块中的语句,当程序执行完成这个执行语句块中的语句以后,程序就会再一次的回来判断这个条件表达式语句,当这个条件表达式语句返回的值还是真的时候,程序就会再一次的去执行这个大括号中的执行语句块中的语句,如此往复直到这个条件表达式语句返回的结果为假的时候,程序就会停止循环,而去执行整个while循环语句以外的后面的其他的语句。
do ..while循环
do… while循环while后面必须要有分號,不管while条件表达式语句是否为true,程序要先执行一次语句序列中的语句,当第一次执行完执行语句序列中的语句后,程序再去判断这个条件表达式语句是否为true,如果为true再进行这个while循环,如果为false就跳出这个循环。
for循环
1、第一次循环,即初始化循环。
首先执行表达式1(一般为初始化语句),再执行表达式2(一般为条件判断语句),判断表达式1是否符合表达式2的条件,如果符合,则执行语句序列,否则,停止执行,最后执行表达式3。
2、下次的循环:
首先执行表达式2,判断表达式3是否符合表达式2的条件;如果符合,继续执行语句序列,否则停止执行,最后执行表达式3.如此往复,直到表达式3不再满足表达式2的条件。在for循环中“表达式1”和“表达式3”可以是一个简单的表达式。
总体来说,while是先判断再执行,do…while是先执行再判断,for循环的语句显得更紧凑一些,for语句一般更适合用于循环次数比较明确的情况,而while或do…while语句则用于循环次数难以判定的情况。
三、循环次数
从循环的执行过程不难看出。While循环是先判断后执行,一旦第一次条件为假,则它的执行次数就为0,最少执行0次。for循环也是一样的。而do…while则不同。它是先执行后判断,所以不管条件是否为真,它都要执行一次。所以它的执行次数最少为1次。
四、while和do...while的区别比较
下面通过例题比较两者的区别
1、 #include
main() main()
{char ch; {char ch;
ch=getchar(); ch=getchar();
do while(ch!=*)
{putchar(ch); {putchar(ch);
ch=getchar(); ch=getchar();
}while(ch!=*); }
} }
这两个程序如果同样都是输入:*AB*
第一种do..while循环是先执行后判断,因此不做判断先输出。结果是*AB。
第二种while循环是先判断后执行,因此它先做判断,如果是真值再做输出。结果是*AB*
五、三种循环的共同点
while, do-while, for循环语句,虽然格式不同,但它们有着共同的特点,都实用于循环结构程序设计。在程序設计的过程中,都具有如下三个要素:
1、循环变量赋初值。
2、循环条件。
3、循环变量值的调整。
循环体语句的正确执行,依赖于循环的条件,循环的条件依赖循环入口时的初始化工作,一环紧扣一环。
循环体中安排哪些语句,要从分析具体问题入手,前后呼应,合乎逻辑。并且能确保循环能够终止。而且结论正确。
循环体中一定要有能改变循环继续的条件语句,使得循环趋于结束,否则循环将无休止的进行下去,而形成“死循环”。这是我们应该避免的。所以为使循环能够正确进行,一定要做好循环的准备工作,在循环语句开始前,要给循环条件和循环初值赋上一定的值。
六、实际应用
理论的学习需要实际的题来检验。不同的题有最适合它的循环结构。
有这样的两道题。
1、从键盘上输入10个数,求其和。
分析用三类循环中的哪个呢?不难看出这道题中的循环次数比较明确,应该最优选用for循环。它的编程如下:
#include
main()
{ int i,num,sum;
sum=0;
for(i=1;i<=10;i++)
{scanf(“%d”,&num);
sum=sum+num;
}
printf(“%d”,sum);
}
2、从键盘上输入若干个数,直到遇到2为止,求它们的和。
分析得出循环次数难以判定,排除for。应该用while或者do…while。两个都可以?还是其中一个呢?因为while是先判定后执行;do…while是先执行后判定。而本题中要求遇到2就截止。如果用do…while的话,第一个数就是2,那么这个2也会被加进去。将违背我们的题意。所以不能用do…while。while是先判定后执行。如果第一个数是2的话,while会先判断不合理,不会去执行语句序列的。所以本题应该选用while循环。
它的编程如下:
#include
main()
{ int n;
int t=0;
scanf(“%d”,&n);
while(n!=0)
{ t=t+n;
scanf(“%d”,&n);
}
printf(“%d\n”,t);
}
总之,循环结构是C语言中程序设计中的一个重要知识点。教师在教学过程中,应让学生掌握三种循环的区别和联系。尽可能提高学生的学习积极性,点燃学生学习的热情,让学生能输出正确的程序,输出快乐的人生。
参考文献:
[1]陈琳.编程语言基础:C语言,高等教育出版社,2016,07
[2]陈琳.C语言学习辅导与上机实习, 高等教育出版社,2012,01
[3]谭浩强.C语言程序设计教程,高等教育出版社,2002