c语言中while与do while循环的主要区别是什么

1. while循环

while循环是C语言中最基本的循环语句之一,它的语法结构如下:

while (condition)

{

// 循环体语句

}

该段代码的含义是,只要条件expression的值为真,就执行循环体语句,然后再判断expression的值是否仍为真,如果为真则继续执行循环体,直到expression的值为假时停止循环。

比如我们可以用while循环来遍历一个数组中的所有元素:

int arr[5] = {1, 2, 3, 4, 5};

int i = 0;

while (i < 5)

{

printf("%d ", arr[i]);

i++;

}

上面的代码输出的结果是:

1 2 3 4 5

1.1 while循环的特点

while循环具有以下特点:

while循环只有在满足条件的情况下才会执行循环体语句。

循环次数不确定,由满足条件的次数决定。

判断条件在执行循环体之前,如果条件不成立,循环体一次也不会执行。

在执行循环体后,再判断条件是否成立,如果成立继续执行循环体,否则退出循环。

2. do while循环

do while循环也是很基础的循环语句,其语法结构如下:

do

{

// 循环体语句

} while (condition);

与while循环相比,do while循环的循环体至少执行一次,因为它是先执行循环体,再对条件进行判断。如果条件仍然成立,则继续执行循环体,直到条件不成立时停止循环。

我们可以用do while循环来实现一个猜数字的小游戏:

int answer = 66;

int guess;

do

{

printf("Please enter a number: ");

scanf("%d", &guess);

if (guess > answer)

printf("Too high! Try again.\n");

else if (guess < answer)

printf("Too low! Try again.\n");

} while (guess != answer);

printf("Correct! You win!");

上面的代码会提示用户输入一个数字,如果猜错了,就告诉用户结果是偏高还是偏低,然后再次让用户输入数字,直到猜对为止。

2.1 do while循环的特点

do while循环具有以下特点:

无论条件是否成立,循环体至少会执行一次。

循环次数不确定,同样是由满足条件的次数决定。

在执行完循环体后,再判断条件是否成立,如果成立继续执行循环体,否则退出循环。

3. while和do while的区别

while和do while循环的最大区别在于判断条件的时机:

while循环在每次执行循环体之前判断条件是否成立,如果条件不成立,一次循环也不会执行。

do while循环在执行完循环体之后才判断条件是否成立,因此无论如何循环体至少会执行一次。

比较这两种循环的差异,我们可以参考以下代码:

int i = 0;

while (i > 0)

{

printf("%d ", i);

i++;

}

由于i的初值是0,因此循环条件不成立,while循环体中的语句一次也不会执行。

int i = 0;

do

{

printf("%d ", i);

i++;

} while (i > 0);

由于do while循环先执行循环体再判断条件,因此循环体会至少执行一次。在这个例子中,循环体会执行一次并输出0,然后i自增为1,此时条件i > 0不成立,循环结束。

在实际开发中,while循环和do while循环都可以用来完成同样的任务,但在一些特定的场景下,它们的行为可能是不同的,因此需要我们根据具体的情况来选择合理的循环方式。

后端开发标签