-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------
C语言基础--while语句、do...while语句和for语句
三、循环结构
在C语言程序设计中除了,会遇到需要重复的事情需要处理所以除了(一)中提到的顺序结构和分支结构之外还有循环结构。
1、while 语句
while (表达式)
{
语句块
}
表达式 称为循环条件表式,它的值只有两种情况真或者假, { } 中语句称作循环体
条件:(1)循环控制条件(2)循环体 (3)让循环控制条件为假的语句,否则会死循环
特点:(1)是当型循环,先判断条件表达式,后执行循环体语句,当表达式为真时,执行循环
(2)
循环体语句只有一句时可以省略;
(3)如果条件表达式为假,循环体语句一次也不执行
(4)while()之后加了分号“;”之后相当于空语句
(5)最简单的死循环 while(1),因为表达式永远都成立。
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int i = 1;
//判断i的值
while(i < 5)
{
//打印出信息
printf("这是第%d次打印:黑马程序员\n",i);
//让i加1
i++;
}
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int i = 1;
//判断i的值
while(i > 5)
{
//打印出信息
printf("这是第%d次打印:黑马程序员\n",i);
//让i加1
i++;
}
//while条件不成立时程序执行这句
printf("while循环体没有执行\n");
system("pause");
return 0;
}
2、do...while 语句
一般形式为:
do
{
语句块
}
while (表达式);
表达式 称为循环条件表式,它的值只有两种情况真或者假,do之后的 { } 中语句称作循环体
特点:(1)是直到型循环,先无条件地执行循环体,然后再判断循环条件是否为真,
(2)不管表达式真假,循环体语句至少会执行一次。
(3)在do...while(表大式)中while(表达式)之后必须加上分号“;” 不加时会报错
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int i = 1;
//判断i的值
do
{
//打印出信息
printf("这是第%d次打印:黑马程序员\n",i);
//让i加1
i++;
}
while(i > 5);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int i = 1;
//判断i的值
do
{
//打印出信息
printf("这是第%d次打印:黑马程序员\n",i);
//让i加1
i++;
}
while(i < 5);
system("pause");
return 0;
}
while()之后未加分号“;”是报错
3、while 和do...while之间的区别:
(1)当循环控制条件第一次判断不为假的时候while和do...while 执行的次数相同
(2)当循环控制条件第一次判断为假的时候,while循环体执行0次,而do...while 循环执行1次
(3)while先判断后执行,do...while先执行后判断
4、for 循环语句
在C语言中for循环是用的最多的也是最灵活的循环,可用于循环次数不确定而只给出循环结束条件的情况,他完全可以代替while语句
一般形式:
for(表达式1;表达式2;表达式)
{
语句块
}
过程:先求解表达式1的值;再
求解表达式2,若其值为真,则执行{ }中的语句块,然后返回求解表达式3;若表达式2的值为假则不执行{ }中的语句块,程序继续向下执行
特点:(1)表达式1也称初始化语句,可以写在for循环之外,在执行过程中只执行一次
(2)当条件表达式2不满足是,则循环结束
(3)表达式3省略后,会造成for 语句的死循环
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
//调用for循环
for( i = 0; i < 5; i++)
{
//打印结果
printf("这是第%d次打印:黑马程序员\n", i);
}
system("pause");
return 0;
}
for循环语句省略格式1
for(;表达式2;表达式3)
{
语句块
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
//调用for循环
for( ; i < 5; i++)
{
//打印结果
printf("这是第%d次打印:黑马程序员\n", i);
}
system("pause");
return 0;
}
for循环语句省略格式2
for(;表达式2;)
{
语句块
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
//调用for循环
for( ; i < 5; )
{
//打印结果
printf("这是第%d次打印:黑马程序员\n", i);
//让i自增
i++;
}
system("pause");
return 0;
}
for循环语句省略格式3
for(;;)
{
语句块
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
//调用for循环
for( ; ; )
{
//用if语句判断i的值
if(i < 5)
//i的值小于5时执行
{
//打印结果
printf("这是第%d次打印:黑马程序员\n", i);
//让i自增
i++;
}
//当i的值不小于5时结束语句
else
{
break;
}
}
system("pause");
return 0;
}
for语句死循环
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
//调用for循环
for( i = 0; i < 5; )
{
//打印结果
printf("这是第%d次打印:黑马程序员\n", i);
}
system("pause");
return 0;
}