C语言详解系列——循环语句详解(3)do while语句的语法结构
do while语句
之前的学习中我们已经了解到了while 语句和if语句两种循环语句,今天要向大家介绍的是do while 语句,我们聊一聊他们之间的区别。首先我们先看看do while 语句的语法结构:
do
{
循环语句;
} while(表达式);
还是像之前一样,让我们用do while 语句输出1-10,以下就是do while的基本语法结构和使用方法。
#include<stdio.h>
int main()
{
int i = 0;
do
{
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
do while语句中的break和continue
break
在for语句和while语句中我们已经知道了break的作用,在循环语句中遇到break就会永久的跳出循环,那么在do while语句中是否break的作用与前者相同呢?让我们在代码中找寻答案。
#include<stdio.h>
int main()
{
int i = 1;
do
{
if (i == 5)
{
break;
}
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
我们可以看到上面代码的输出结果为1 2 3 4,所以在do while语句中break的作用也是永久跳出循环。
continue
让我们再来看看continue的作用
#include<stdio.h>
int main()
{
int i = 1;
do
{
if (i == 5)
{
continue;
}
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
输出的结果为1 2 3 4但是循环并没有结束,原因是当i = 5;时执行continue跳过了之后的循环语句,包括调整语句i++;所以造成了死循环,所以在do while 语句中continue的作用也是跳过本次循环中在continue之后的语句。
do while语句与while语句的不同点
大家可以思考一下while语句和do while 语句有什么不同的地方,在这之前,让我们再来回顾一下while语句的语法结构
while(表达式)
{
循环语句;
}
do
{
循环语句;
} while(表达式);
对比两个语句我们可以发现while语句是先行判断,之后依据判断结果判断是否进入循环。而do while 语句是先进行循环一次,在进行判断,依据判断结果判断是否进入循环。简单来讲二者之间的区别就是 while 语句的循环语句可能不被执行,而do while 语句中的循环语句至少执行一次。
简单练习
到这里我们循环结构中的三个基本语句while for do while已经全部分享给大家了,那么让我们实战训练以下吧:
1.计算n的阶乘。
#include<stdio.h>
int main()
{
int i = 0;
int n = 0;
int sum = 1;
printf("请输入n的值:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum *= i;
}
printf("%d", sum);
return 0;
}
2.计算1!+2!+3!+…+10!
int main()
{
int i = 0;
int n = 0;
int sum = 1;
int mul = 0;
printf("请输入n的值:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum *= i;
mul += sum;
}
printf("%d", mul);
return 0;
}
不知道大家写出来没有,这里我提供了for语句实现的代码,大家可以尝试用另外两个语句试一试,看看代码会有什么区别。