结构:
do
{
循环语句;
}
while(循环控制表达式);
先执行循环语句,再计算循环控制表达式,若为真则返回循环语句,若为假,就退出循环,执行循环后面的语句;
#include<stdio.h>
int main()
{
int i = 0;
do
{
printf("%d\n",i);
i++;
}
while (i < 5);
return 0;
}
先初始化赋值变量i,进入循环体语句{},打印i,此时i初始化为0所以打印0,进行i++变为1,判断是否满足循环条件i<5,满足则返回循环体{},打印i(1),再++变为2,再判断,直到i++为5时,不满足循环控制条件,就结束循环;
break在do-while中应用:
break的作用是结束循环;
1.
#include<stdio.h>
int main()
{
int i = 0;
do
{
if (i == 2)
break;
printf("%d\n",i);
i++;
}
while (i < 5);
return 0;
}
i=0时进入do-while循环,不满足if表达式所以不会进入if,进入循环体语句后打印i,再进行i++使i变为1,判断是否满足循环红纸表达式,满足则又进入循环体语句,打印i(1),再进行++使i变为2,满足循环,进入循环体语句,此时i为2,满足if表达式,进入if语句,执行break,结束循环;
2.
#include<stdio.h>
int main()
{
int i = 0;
do
{
i++;
if (i == 2)
break;
printf("%d\n",i);
}
while (i < 5);
return 0;
}
此时与上例代码不同的是i++的改变;i++没有放在break后面也就意味着i++不会被忽略,先进行i++使i变为1,打印1,满足循环,进入循环体,进行i++使i变为2,满足if表达式,执行break,结束循环;
continue在do-while中应用:
continue的作用是忽略后面的语句
1.
#include<stdio.h>
int main()
{
int i = 0;
do
{
if (i == 2)
continue;
printf("%d\n",i);
i++;
}
while (i < 5);
return 0;
}
i=0、i=1时循环并打印,当i=2时执行continue,忽略printf("%d\n",i);和 i++;执行while条件控制语句i=2满足i<5返回循环体,i的值不会被改变,一直都是以i=2返回循环体,无限死循环;
2.
#include<stdio.h>
int main()
{
int i = 0;
do
{
i++;
if (i == 2)
continue;
printf("%d\n", i);
} while (i < 5);
return 0;
}
先进行i++使i变成1,打印1,满足循环条件,返回循环体,进行i++使i变成2,执行continue,会忽略打印id的值,继续执行循环条件控制语句,继续返回循环体进行i++,再接着打印,一直循环;