C语⾔提供了3种循环语句,
while
就是其中⼀种,接下来就介绍⼀下
while
语句。
while
语句的语法结构和
if
语句⾮常相似。
1 while循环
#
include
<stdio.h>
int
main
()
{
while
(
1
)
printf
(
"hehe\n"
);
//while
后边的条件满⾜,死循环的打印
hehe
return
0
;
}
练习:
输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输⼊:1234,输出:4 3 2 1
输⼊:521,输出:1 2 5
#
include
<stdio.h>
int
main
()
{
int
n =
0
;
scanf
(
"%d"
, &n);
while
(n)
{
printf
(
"%d "
, n%
10
);
n /=
10
;
}
return
0
;
}
要想得到n的最低位,可以使⽤n%10的运算,得到的余数就是最低位,如:1234%10得到4
要想去掉n的最低位,找出倒数第⼆位,则使⽤
n=n/10
操作就可以去掉最低位的,如:
n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第⼆位3。
循环1和2两个步骤,在n变成0之前,就能到所有的位。
2 for循环
for
循环是三种循环中使⽤最多的
for
(
表达式
1
;
表达式
2
;
表达式
3
)
语句;
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整
⾸先执⾏ 表达式
1
初始化循环变量,接下来就是执⾏ 表达式
2
的判断部分, 表达式
2
的结果如果
==0,则循环结束; 表达式
2
的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表式3 ,调整循环变量,然后再去 表达式
2
的地⽅执⾏判断, 表达式
2
的结果是否为0,决定循环是否继
续。
整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。
练习:在屏幕上打印1~10的值
#
include
<stdio.h>
int
main
()
{
int
i =
0
;
for
(i=
1
; i<=
10
; i++)
{
printf
(
"%d "
, i);
}
return
0
;
}
练习
计算1~100之间3的倍数的数字之和
#
include
<stdio.h>
int
main
()
{
int
i =
0
;
int
sum =
0
;
for
(i=
1
; i<=
100
; i++)
{
if
(i %
3
==
0
)
sum += i;
}
printf
(
"%d\n"
, sum);
return
0
;
}
//
如果能直接产⽣
3
的倍数的数字就省去了多余的循环和判断
#
include
<stdio.h>
int
main
()
{
int
i =
0
;
int
sum =
0
;
for
(i=
3
; i<=
100
; i+=
3
)
{
sum += i;
}
printf
(
"%d\n"
, sum);
return
0
;
}
3 do-while循环
在屏幕上打印1~10的值
#
include
<stdio.h>
int
main
()
{
int
i =
1
;
do
{
printf
(
"%d "
, i);
i = i +
1
;
}
while
(i<=
10
);
return
0
;
}
在
do while
循环中先执⾏语句,执⾏完语句,在去执⾏判断表达式,判断表达式的
结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。
所以在
do while
语句中循环体是⾄少执⾏⼀次的,这是
do while
循环⽐较特殊的地⽅。