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语言中的定义

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循环就可以很好的表示。
好了,这里就是这一期的全部内容,如果有错或有疑问可以私信我哦
谢谢!!!
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时