议C语言中循环语句

时间:2022-06-20 12:58:12

议C语言中循环语句

摘要:在C语言循环结构设计中,除了可以用while和do-while语句实现循环外,C语言还提供了for语句可以实现循环,for语句不仅比以上两种语句实现起来灵活,而且可以用于循环次数确定的情况。总的来说完全可以代替while和do-while.

关键词:For语句 循环结构 条件表达式

1、for语句的表达形式

for(表达式1;表达式2;表达式3),3个表达式的主要作用:表达式1设置初始条件,只执行一次;表达式2循环条件表达式,用来判断程序是否继续执行,在每次执行循环体前先执行此表达式,决定是否继续执行循环体;表达式3是对循环的调整,是在执行完循环体后才进行的。所以我们可以对for语句这样理解 for(循环变量赋初值;循环条件;循环变量自增或自减)例如:

for(i=1;i

sum=sum+i;

其中i=1是给循环变量赋初值1,i

(1)for语句表达形式中的表达式1可以省略,但表达式1后边的分号不能省略。例如:

for(;i

(2)for语句表达形式中的表达式2也可以省略,但表达式2后边的分号不能省略。即不设置和检查循环结束的条件。例如:for(i=1; ;i++) sum=sum+i;此时循环无终止的进行下去,也就说表达式2一直为真.

(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。

(4)表达式1和表达式3都没有,只有表达式2,即只给出循环结束条件。对于没有表达式1和表达式3的for循环语句,为了让循环正常执行,应当在for语句前给循环变量赋初值。 从此处我们可以看出for语句比while语句功能更强大,除了可以给出循环条件外,还可以赋初值,使循环变量自动增减等。

(5)表达式1、表达式2和表达式3都可以省略。例如:for(; ;) printf(“%d\\n”,i);

相当于 while(1) printf(“%d\\n”,i);即就是不设初值,不判断表达式2的条件(表达式2始终为真),不改变循环变量。这样程序就无终止的执行循环体语句。显然这样的程序是没有任何价值的。

(6)表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。

例如:for(sum=0;i

(7)表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即就是包含一个以上的简单表达式,中间用逗号隔开。

如:for(sum=0,i=1,i

(8)表达式2一般是关系表达式(如i

①for(i=0;(ch1=getchar())!=’\\n’;i+=ch1);在表达式2中先从终端接收一个字符赋给ch1,然后判断这个赋值表达式的值是否不等于‘\\n’(转移字符 换行),如果不等于’\\n’,就执行这个循环体,它完成的作用是不断输入字符,将他们的ASCⅡ码相加,直到输入一个“换行”符为止,程序结束执行。这里我们要注意的是:此时for语句的循环语句为空语句,把本来要在循环体内处理的内容放在表达式3中,作用是一样的,可见for语句功能的强大,可以再表达式中完成本来应在循环体内完成的操作。

②for(;((ch1=getchar())!=’\\n’;) printf(“%c”,ch1);这个for语句中只有表达式2,而无表达式1和表达式3.它的作用是每读入一个字符后立即输出该字符,直到输入一个“换行”为止。

运行情况: Computer((输入) Computer(输出)。这里我们要注意的是:从终端键盘向计算机输入时,是在按Enter键以后将一批数据一起送到内存缓冲区去的。因此输出结果不是CCoommppuutteerr,即不是从终端输入一个字符马上输出一个字符,而是在按Enter键后数据才送入内存缓冲,然后每次从缓冲区读一个字符,再输出该字符。

从上面的介绍我们可以看到,C语言的FOR语句使用非常灵活,变化多端。C语言的FOR语句比其他语言中的for语句灵活和强大的多。可以把循环体和一些循环控制无关的操作也作为表达式1和表达式3的出现,这样程序可以比较简洁。

2、for语句的执行过程

(1)先求解表达式1.

(2)再求解表达式2,如果表达式2为真,则执行FOR语句中的循环体,然后执行(3),如果为假,则循环结束,转到第(5)步。

(3)求解表达式3.

(4)转回步骤(2)继续执行。

(5)循环结束,执行for语句下面的一个语句。

3.种循环的比较

(1) 在处理循环语句中,while、do-while和for 都可以用来处理同一个问题,一般情况下他们3个可以互换。

(2)在while循环和do-while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环中包含使循环区域结束的语句。For循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体重的操作全部放到表达式3中。因此for语句的功能更强,凡是while循环能完成的,用for循环都能实现。

(3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之间完成。而for语句可以在表达式1中实现循环变量的初始化。

(4)while、do-while和for循环,都可以用break语句跳出循环,用continue语句结束本次循环。

4.种循环举例:求1+2+3+……+100,即∑100n=1n

(作者单位:陕西国际商贸学院)

参考文献:

[1]《电脑知识与技术》2009年第24期。

[2]《家教世界》2012年04期。

[3]《C语言程序设计实例教程》涂玉芬主编 北京邮电出版社 2011年第一版。

上一篇:浅析儒家文化中的“有教无类”与“义利观”对... 下一篇:基于价值链分析我国数字出版业存在的问题