C语言中的while循环结构

发布时间 2023-07-27 16:29:54作者: davie2020

C语言中的while循环结构

C语言提供了3中循环语句,while就是其中的一种,接下来就介绍一下while语句。
while语句的语法结构和if语句非常相似。

1.1 if和while的对比

if(表达式)
    语句;

while(表达式)
    语句;//如果循环体想包含更多的语句,可以加上大括号

写代码对比下:

#include <stdio.h>

int main()
{
    if(1)
        printf("北方\n");//if后面条件满足,打印一次北方
    return 0;
}
#include <stdio.h>

int main()
{
    while(1)
        printf("北方\n");//while后面的条件满足,死循环的打印北方
    return 0;
}

这就是他们的区别,while语句是可以实现死循环效果的。

1.2 while语句的执行流程

image
首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。

1.3 while循环的实践

练习:在屏幕上打印1~10的值
参考代码:

#include <stdio.h>

int main()
{
	int count = 0;
	while (count < 10)
	{
		count += 1;
		printf("%d\n", count);
	}
	return 0;
}

1.4 练习

输入一个正的正数,逆序打印这个整数的每一位
例如:
输入:1234 输出:4 3 2 1
输入:521 输出 1 2 5

题目解析

  1. 要想得到n的最低位,可以使用n%10的运算,得到的余数就是最低位,如:1234%10得到4
  2. 要想去掉n的最低位,找出倒数第二位,则使用n%n/10操作可以去掉最低位的,如:n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第二位
  3. 循环1和2两个步骤,在n变成0之前,就能得到所有的位。

参考代码:

#include <stdio.h>

int main()
{
	printf("请输入一个正整数:");
	int n = 0;
	scanf("%d", &n);
	while (n)
	{
		printf("%d ", n % 10);
		n /= 10;
	}
	return 0;
}