目录
循环语句
程序在运行时可以通过判断、检验条件作出选择。此处,程序还必须能够重复,也就是反复执行一段指令,直到满足某个条件为止。例如,要计算一个公司的消费总额,就要将所有的消费加起来。
这种重复的过程就称为循环。C语言中有3种循环语句:while、do-while和for循环语句。循环结构是结构化程序设计的基本结构之一,因此熟练掌握循环结构是程序设计的基本要求。
while
举例:使用while为用户提供菜单显示。
使用while为用户提供菜单显示效果
使用while循环计算从1到100的累加。
五个注意
while与do ....while比较
for循环语句
使用while循环计算从1到100的累加。
省略表达式1
int sum=0; int i=0; //将循环控制变量拿到循环语句外声明并赋初值 for ( ;i<=10 ;i++) { sum+=i; } cout <<sum << endl;
省略表达式1和3
int sum=0; int i=0; //赋初值 for(; i<=10 ; ) { sum+=i; i++; //改变循环变量 } cout <<sum << endl;
int sum=0; int i=0; //赋初值 while(i<=10 ) { sum+=i; i++; //改变循环变量 } cout <<sum << endl;
三种循环语句的比较
前面介绍了3种可以执行循环操作的语句,这3种循环都可用来解决同一问题。一般情况下这三者可以相互代替。下面是对这3种循环语句在不同情况下的比较。
þwhile和do-while循环只在while后面指定循环条件,在循环体中应包含使循环趋于结束的语句(如i++或者i=i+1等);for循环可以在表达式3中包含使循环趋于结束的操作,可以设置将循环体中的操作全部放在表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。
þ用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成;而for语句可以在表达式1中实现循环变量的初始化。
þwhile循环、do-while循环和for循环,都可以用break语句跳出循环,用continue语句结束本次循环(break和coutinue语句将在本文后续内容中进行介绍)。
循环嵌套
循环嵌套实例
1.使用嵌套语句输出金字塔形状
#include<stdio.h> int main() { int i, j, k; /*定义变量i,j,k为基本整型*/ for (i = 1; i <= 5; i++) /*控制行数*/ { for (j = 1; j <= 5-i; j++) /*空格数*/ printf(" "); for (k = 1; k <= 2 *i - 1; k++) /*显示*号的数量*/ printf("*"); printf("\n"); } return 0; }
2.打印乘法口诀表
#include<stdio.h> int main() { int iRow, iColumn; /*iRow为行,iColum为列*/ for (iRow = 1; iRow <= 9; iRow++) /*for循环iRow为乘法口诀表中的行数*/ { for (iColumn = 1; iColumn <= iRow; iColumn++)/*根据iRow,iColum取值循环计算*/ { printf("%d*%d=%d ", iRow,iColumn,iRow *iColumn); /*输出结果*/ } printf("\n"); /*进行换行*/ } return 0; }
转移语句
goto语句
goto语句为无条件转向语句,可以使程序立即跳转到函数内部的任意一条可执行语句。goto关键字后面带一个标识符,该标识符是同一个函数内某条语句的标号。标号可以出现在任何可执行语句的前面,并且以一个冒号“:”作为后缀。goto语句的一般形式为:
goto 标识符;
goto后的标识符就是要跳转的目标,当然这个标识符要在程序的其他位置给出,但是其标识符要在函数内部。函数的内容将会在后面章节进行介绍,在此对其简单了解即可。例如:
goto Show;
printf("the message before ShowMessage");
Show:
printf("ShowMessage");
上述代码中,goto后的Show为跳转的标识符,而其后Show:代码表示goto语句要跳转的位置。这样在上面的语句中第一个printf函数不会执行,而会执行第二个printf函数。
break语句
有时会遇到这样的情况,不顾表达式检验的结果而强行终止循环,这时可以使用break语句。break语句终止并跳出循环,继续执行后面的代码。break语句的一般形式为:
break;
break语句不能用于循环语句和switch语句之外的任何其他语句中。例如在while循环语句中使用break语句:
while(1)
{
printf("Break");
break;
}
在代码中,虽然while语句是一个条件永远为真的循环,但是在其中使用break语句使得程序流程跳出循环。
continue语句
在某些情况下,程序需要返回到循环头部继续执行,而不是跳出循环。continue语句的一般形式是:
continue;
其作用就是结束本次循环,即跳过循环体中尚未执行的部分,接着执行下一次的循环操作
了解这些结构的使用方法,可以在程序功能上节约很多的时间,无须再一条一条进行操作。通过对3种循环语句的比较,可以了解到不同语句的使用区别,也可以发现三者的共同之处。最后介绍了有关转移语句的内容。学习转移语句使得程序设计更为灵活,使用continue语句可以结束本次循环操作而不终止整个循环,使用break语句可以结束整体循环过程,使用goto语句可以跳转到函数体内的任何位置。