打印
[其它产品/技术]

do-while循环和while循环之间的区别

[复制链接]
1067|51
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
OKAKAKO|  楼主 | 2024-2-22 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

请解释一下C语言中的do-while循环和while循环之间的区别。

参考答案

当面试官问到C语言中的do-while循环和while循环之间的区别时,我会这样详细回答:

C语言中的do-while循环和while循环都是用来实现循环结构的控制流语句,但它们之间有一些区别。

首先,我们来看一下do-while循环的特点:

「do-while循环:」

  • 循环体先执行一次,然后再判断循环条件是否满足。
  • 循环条件在循环体执行之后进行判断,即使循环条件不满足,循环体至少会执行一次。
  • do-while循环的语法结构如下:
do {
  // 循环体
} while (循环条件);

示例:

int i = 0;
do {
  printf("%d\n", i);
  i++;
} while (i < 5);

在上面的示例中,循环体先执行一次,然后再判断循环条件是否满足。即使i的值已经大于等于5,循环体也会至少执行一次,输出0。

接下来,我们来看一下while循环的特点:

「while循环:」

  • 先判断循环条件是否满足,如果满足则执行循环体,否则跳出循环。
  • 循环条件在循环体执行之前进行判断,如果循环条件不满足,则循环体不会被执行。
  • while循环的语法结构如下:
while (循环条件) {
  // 循环体
}

示例:

int i = 0;
while (i < 5) {
  printf("%d\n", i);
  i++;
}

在上面的示例中,先判断i是否小于5,如果满足则执行循环体,输出i的值,然后再对i进行递增操作。如果i的值已经大于等于5,循环体不会被执行。

总结来说,do-while循环和while循环都是用来实现循环结构的控制流语句,但它们之间的区别在于循环条件的判断时机。do-while循环先执行一次循环体再判断循环条件,即使循环条件不满足,循环体至少会执行一次;而while循环先判断循环条件再执行循环体,如果循环条件不满足,循环体不会被执行。根据具体的需求,我们可以选择使用合适的循环结构来实现不同的逻辑。


使用特权

评论回复
沙发
人的发个哈哈| | 2024-2-24 15:27 | 只看该作者
do-while循环和while循环都用于实现循环,但它们的区别在于循环条件的判断时机。do-while循环先执行一次循环体再判断条件,而while循环先判断条件再执行循环体。

使用特权

评论回复
板凳
duo点| | 2024-2-25 15:47 | 只看该作者
do-while循环和while循环的主要区别在于它们的执行顺序、判断方式以及执行次数。

使用特权

评论回复
地板
OliviaSH| | 2024-2-28 18:32 | 只看该作者
do while适用于最少要执行一次的地方

使用特权

评论回复
5
IFX-MudeLin| | 2024-7-15 10:58 | 只看该作者
在C语言里,do while还有比较常用的地方用在预编译宏上,可以让宏类似函数调用的方式来处理多行代码。
下面的例子是以16字节一行的方式打印一个Buffer:
#define PRINT_BUF(buf, len) \
            do { \
                int i; \
                char *tmp = (char*)buf; \
                printf("%s, " #buf "[%d] =", __FUNCTION__, (int)len); \
                for (i = 0; i < len; i++) \
                { \
                    if ((i % 16) == 0) \
                    { \
                        printf("\n"); \
                    } \
                    printf("%02x", tmp[i]); \
                } \
                printf("\n"); \
            } while(0)

使用特权

评论回复
6
IFX-Unic| | 2024-7-15 22:48 | 只看该作者
do while 使用在预编译宏中,可以处理多行代码,而且无论调用该宏的代码结构中是不是需要以[;]分号结尾,都不影响预编译中的代码整体性。

使用特权

评论回复
7
zhizia4f| | 2024-8-15 15:17 | 只看该作者
do-while 循环和 while 循环是两种常见的循环结构,它们在执行方式上有一些关键的区别

使用特权

评论回复
8
liu96jp| | 2024-8-15 16:20 | 只看该作者
while 循环在每次循环开始时检查条件。如果条件为真,则执行循环体中的代码;如果条件为假,则跳过循环体,继续执行循环后的代码

使用特权

评论回复
9
d1ng2x| | 2024-8-15 17:26 | 只看该作者
while 循环先检查条件,再执行循环体。如果条件一开始就为假,循环体一次都不会执行

使用特权

评论回复
10
p0gon9y| | 2024-8-15 18:30 | 只看该作者
do-while 循环在每次循环结束时检查条件。这意味着循环体至少会执行一次,无论条件是否为真

使用特权

评论回复
11
kaif2n9j| | 2024-8-15 19:36 | 只看该作者
do的循环是先执行循环体,再检查条件。循环体至少会执行一次,即使条件一开始就为假。

使用特权

评论回复
12
q1d0mnx| | 2024-8-15 20:44 | 只看该作者
while 循环:先检查条件,再执行循环体。do-while 循环:先执行循环体,再检查条件

使用特权

评论回复
13
w2nme1ai7| | 2024-8-15 21:33 | 只看该作者
最少执行次数

使用特权

评论回复
14
y1n9an| | 2024-8-16 09:00 | 只看该作者
一般来说while 循环:可能一次都不执行(如果条件一开始就为假)。do-while 循环:至少执行一次(即使条件一开始就为假)

使用特权

评论回复
15
g0d5xs| | 2024-8-16 10:21 | 只看该作者
其实都是循环,建议根据具体的需求和逻辑,选择合适的循环结构可以提高代码的效率和可读性

使用特权

评论回复
16
b5z1giu| | 2024-8-16 12:11 | 只看该作者
感觉用do的还是少,好像用while的多

使用特权

评论回复
17
为你转身| | 2024-9-30 13:05 | 只看该作者
上面的示例中,循环体先执行一次,然后再判断循环条件是否满足

使用特权

评论回复
18
kkzz| | 2024-10-3 08:01 | 只看该作者
while 循环在执行循环体之前先判断条件。如果条件为真(true),则执行循环体;如果条件为假(false),则跳过循环体,直接结束循环。

使用特权

评论回复
19
yorkbarney| | 2024-10-3 10:05 | 只看该作者
在使用while循环时,需要确保循环条件能够最终变为假(false),否则会导致无限循环。
在使用do-while循环时,虽然它至少会执行一次循环体,但也需要确保在循环体内有适当的条件判断来终止循环,以避免无限循环。

使用特权

评论回复
20
sheflynn| | 2024-10-3 11:05 | 只看该作者
在进入循环之前,先计算条件表达式的值。如果条件表达式的值为真,则执行循环体;如果条件表达式的值为假,则跳过循环体,继续执行循环后面的代码。
每次循环结束后,都会再次计算条件表达式的值,以决定是否继续下一次循环。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

1449

帖子

4

粉丝