在前面我们介绍了分支语句
if(条件)
{
语句1;
}
else if(条件)
{
语句2;
}
else
{
语句3;
}
在这种if语句下,当我们的条件满足就能够执行下面的语句,但是执行完毕之后,就不能够再执行了,但在我们生活当中往往一件事情需要进行很多次,才能得到最终结果,所以同一件事我们要做很多次,那我们需要怎么做呢?在这里我们引入循环语句。
举个例子:
在这个流程图当中我们可以看到,傍富婆和勤奋学习这两个事情是在多次重复做的,这就是循环语句。
//while语法结构
while(表达式)
循环语句;
运用这个语句结构实现一下:
在屏幕打印1-10的数字
#include
#include
int main()
{
int i = 1;//条件初始化
while (i <= 10)//条件判定
{
printf("%d ", i);
i++;//条件更新
}
system("pause");
return 0;
}
运行结果:
通过这样一个简单的例子,我们初步了解了while循环的基本语法。
概念:break在循环语句中的作用就是在循环中只要遇到break,就停止break后期的所有循环,直接终止循环。
一个例子:
#include
#include
int main()
{
int i = 0;//条件初始化
while (i < 10)//条件判定
{
printf("%d ", i);
if (i == 5)
{
break;//while循环在这儿就停止了
}
i++;//条件更新
}
system("pause");
return 0;
}
概念:continue语句在while循环中的作用也是一种终止循环,它和break的区别在于它不是全部终止,continue在执行时会终止本次continue后边的循环语句,直接跳转到while语句判断部分进行新的一次while循环。
一个例子:
#include
#include
int main()
{
int i = 0;
while (i < 10)
{
if (i == 5)
{
i++;
continue;//当i=5这一次就不会在执行最后的输出语句了,所以执行结果中不会包含5
}
printf("%d ", i);
i++;
}
system("pause");
return 0;
}
for(表达式1;表达式2;表达式3)//表达式1:条件初始化;表达式2:条件判定;表达式3:条件更新
{
循环语句;
}
一个例子:
在屏幕上打印出1-10的数字
#include
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
system("pause");
return 0;
}
在for循环中也可以存在break和continue,意义同while一样,但是实际使用和while存在一些差别。
eg1:
#include
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)//当i=5时直接跳出循环
{
break;
}
printf("%d ", i);
}
system("pause");
return 0;
}
#include
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
{
continue;//从此处开始停止执行回到新一轮的for循环
}
printf("%d ", i);
}
system("pause");
return 0;
}
运行结果:
注:在while循环中运用continue语句时一定要注意条件更新语句所在位置,防止出现死循环
如下:
#include
#include
int main()
{
int i = 0;
while (i <= 10)
{
if (i == 5)
{
printf("continue ");//用来检测死循环
continue;//一直卡死在i=5这个地方
}
printf("%d ", i);
i++;
}
system("pause");
return 0;
}
这样就会出现死循,,因为条件更新语句在continue后边,导致条件一直得不到更新就一直卡死。而for循环语句就不会出现这样的问题因为for循环的更新条件就在循环的最前边。
1.不可以在for循环体内修改循环变量,防止for循环失去控制。
2.建议for循环语句的控制变量的取值采取前闭后开区间的写法
do{
循环语句;
}while(表达式);
do语句的特点是:循环至少执行一次,其他用法和while基本一致。