C语言控制语句:循环

C语言中有三种循环:for、while、do while。

 

1.while循环:while语句创建了一个循环,重复执行直到测试表达式为假或0。while语句是一种入口条件循环,也就是说,在执行多次循环之前已决定是否执行循环。因此,循环有可能不被执行。循环体可以是简单语句,也可以是复合语句。

 

设计一个程序,使用while循环使得每次输入一个数字进行求和:

C语言控制语句:循环

long类型中的0是0L,int类型中的0是0,因此给long类型赋值时要给sum初始化为0L。

 

编译运行:

C语言控制语句:循环

 

该程序是利用scanf()的返回值来结束循环的。先看while循环,该循环的测试条件是如下表达式:

status==1

==运算符是C的相等运算符,该表达式判断status是否等于1,只要status等于1,循环就会重复。每次循环,num的当前值都被加到sum上,这样sum的值始终是当前整数之和。当status的值不为1时,循环结束。然后程序打印sum的最终值。

 

while循环的通用形式:

while(expression)

statement

statement部分可以是以分号结束的简单语句,也可以是用花括号括起来的复合语句。expression是值之间的比较,可以使用任何表达式。如果expression为真,执行statement部分一次,然后再次判断expression。在expression为假(0)之前,循环的判断和执行一直重复进行。每次循环都被称为一次迭代。

 

关系运算符:关系运算符常用于构造while语句和其他C语句中用到的关系表达式。这些语句都会检查关系表达式为真还是为假。

C语言控制语句:循环

C语言控制语句:循环

 

 

2.for循环:for语句使用3个表达式控制循环过程,分别用分号隔开。initialize表达式在执行for语句之前只执行一次;然后对test表达式求值,如果表达式为真(或非零),执行循环一次;接着对update表达式求值,并再次检查test表达式。for语句是一种入口条件循环,即在执行循环之前就决定了是否执行循环。因此,for循环可能一次都不执行。statement部分可以是一条简单语句或复合语句。

for循环形式:

for(initialize;test;update)

statement

在test为假或0之前,重复执行statement部分。

 

示例:设计一个程序打印整数1~6的立方

C语言控制语句:循环

 

编译运行: 

C语言控制语句:循环

for循环的第一行包含了循环所需的所有信息:num的初值,num的终值和每次循环num的增量。

 

新的运算符:

  

C语言控制语句:循环

C语言控制语句:循环

3.do while循环:while循环和for循环都是入口循环,即在循坏的每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容。C语言还有出口条件循环,即在循环的每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次。这种循环被称为do while循环。

 

如下程序:在用户输入13之前会不断提醒用户输入数字。 

C语言控制语句:循环

运行:

C语言控制语句:循环

while可以翻译成是当的意思,也就是说当后面的条件不满足时,会继续进如do的循环体,而到当后面的条件满足了就进行接下来的语句了。

 

下面是do while循环的通用形式:

do

statement

while(expression);

statement可以是一条简单语句或复合语句。注意,do while循环以分号结尾。

 

如何选择循环呢?

首先,确定是需要入口条件循环还是出口条件循环。通常,入口条件循环用得比较多,有几个原因。其一,一般原则是在执行循环之前测试条件比较好。其二,测试放在循环的开头,程序的可读性更高。另外,在许多应用中,要求在一开始不满足测试条件时就直接跳过整个循环。那么,假设需要一个入口条件循环,用for循环还是while循环?这取决于个人喜好,因为二者皆可。一般而言,当循环涉及初始化和更新变量时,用for循环比较合适,而在其他情况下用while循环更好。

 

 

 

上一篇:成员变量命名不规范导致的错误 Class has no flields;


下一篇:Javascript Statement(上)