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
语句实现的代码,大家可以尝试用另外两个语句试一试,看看代码会有什么区别。