易百教程

do while语句

do while循环中,测试循环是否应该继续是在循环结束的位置。所以循环语句或语句块总是至少执行一次。

do-while循环的一般表示是:

do
{
  /* 循环体要执行的语句 */
}
while(expression);

以下代码使用do-while循环来反转正数的数字值。

示例代码

#include <stdio.h>
int main(void)
{
  unsigned int number = 0;   // 要反转的数字值
  unsigned int rebmun = 0;   // 反转的数字
  unsigned int temp = 0;      //临时存储变量

  // 读入要反转的值
  printf("\n输入正整数: ");
  scanf(" %u", &number);

  temp = number;// 复制到临时存储

  // 反转存储在temp中的数字
  do
  {
    rebmun = 10 * rebmun + temp % 10;        // 将最右边的temp数字添加到rebmun
    temp = temp / 10;                        // 并从temp中删除它
  } while (temp);                           // 只要temp不为0就继续
  printf("\n%u 的反转的数字是:%u \n", number, rebmun);
  return 0;
}

执行上面示例代码,得到以下结果:

hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out

输入正整数: 123344

123344 的反转的数字是:443321

怎么运行的?

数字的反转在do-while循环中完成:

// 反转存储在temp中的数字
do
{
    rebmun = 10 * rebmun + temp % 10;        // 将最右边的temp数字添加到rebmun
    temp = temp / 10;                        // 并从temp中删除它
} while (temp);                           // 只要temp不为0就继续

使用模数运算符%获得最右边的十进制数,然后获得除以10后的余数。