C语言的循环语句(while,for与 do-while循环)

C语言的循环语句( while,for与 do-while循环 )

	上期,我们介绍了C语言的分支语句( if 与 switch语句 )(https://blog.csdn.net/GenshiN__IMPACt_/article/details/132044349?spm=1001.2014.3001.5502)
	所以我们今天来介绍一下常与分支语句结合使用的循环语句( **while,for与 do-while循环** )

关于while循环:

1)while在C语言中的定义

while图解

2)while循环在C语言中的基本作用

while循环的两个例子

1.与scanf构成多组输入
例如:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int n = 0;
    while (scanf("%d", &n) != 0)
    {
        for (int i = 0; i < 33; i++)
        {
            if (n == 0)
            {
                printf("他的二进制中一的总数有%d个\n", i);
                break;
            }
            n = (n & (n - 1));
        }
    }
    return 0;
}

如下图所示,其中左图加了while循环,我们可以看到左图的可以进行多次输入且没有退出程序,
所以我们可以尽情使用这个程序,如果想退出可以按"ctri+Z"退出程序
在这里插入图片描述
2.输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输入:125 输出:5 2 1
代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	while (n)
	{
		printf("%d ", n % 10);
		n /= 10;
	}
	return 0;
}

在这里n==0时程序结束while循环。

关于for循环

1)for在C语言中的定义

for(表达式1; 表达式2; 表达式3)
{
		执行语句;
}

其中,
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整
例如:我们想知道X的Y次方为多少,就可以用for循环来解决,代码如下:

#include<stdio.h>
int main()
{
	int x = 0, y = 0;
	scanf("%d %d", &x, &y);
	int a = x;
	for (int i = 0; i < y; i++)
	{
		x *= x;
	}
	printf("%d的%d次方是%d\n", a, y, x);
	return 0;
}

在这里插入图片描述

方法解析:这里我们正是用了for循环
1.首先,我们初始化了i变量;
2.接着,就是执⾏i<y的判断部分;
3.若满足判定即(i<y)==0,则进行变量的调整与for所包含的执行语句;若(i<y)!=0,则跳出循环

2)for循环实例

例如:打印二维数组
在这里插入图片描述
代码如下:

#include<stdio.h>
int main()
{
	int arr[2][5] = { 0,1,2,3,4,5,6,7,8,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int len = sizeof(arr) / (sizeof(arr[0][0]) * sz);
	for (int i = 0; i < sz; i++)
	{
		for (int j = 0; j < len; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

for的双循环使得在打印完数组一行的列数之后得以换行,这样就可以实现二维数组的输入了

do while循环体系

1)do while循环的语法形式

do while与for while不同的是do while先执行程序再进行判定,其结构图如下:
在这里插入图片描述
do while 循环中先执⾏图上的“语句”,
执⾏完语句,再去执⾏do while所包含的判断语句,判断表达式的结果是!=0,则继续循环,
执⾏循环语句;判断表达式的结果==0,则循环结束。
所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅

2)do while循环的运用

1.输⼊⼀个正整数,计算这个整数是⼏位数,
例如:5201314 输出:该整数是7位数
代码如下:

#include<stdio.h>
int main()
{
	int n = 0, count = 0;
	scanf("%d", &n);
	do
	{
		n = n / 10;
		count++;
	} while (n);
	printf("该整数是%d位数\n", count);
	return 0;
}

我们可以看到,即使n==0,也是1位数,也需要统计位数,所以这里使用do while循环就可以很好的表示。

好了,这里就是这一期的全部内容,如果有错或有疑问可以私信我哦
谢谢!!!

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒋志昂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值