我是靠谱客的博主 腼腆蜡烛,这篇文章主要介绍【循环总结】For循环,while循环,do while循环,现在分享给大家,希望可以做个参考。

#while
##while的简单语法规则

复制代码
1
2
3
4
while (判断条件) { 循环体; }

###练习

  1. 例一
    用一个循环来求出前n项和
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h> int main(void) { int i; int sum=0; /* for(i=1;i<101;i++) sum=sum+i; printf("%d",sum) ; */ i=1; while(i<101){ sum=sum+i; ++i; } printf("%d",sum); return 0; }

2.例二
利用循环输出0-9之间的数字

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h> int main(void) { int ch = 0; while ((ch = getchar()) != EOF) { if (ch < '0' || ch>'9') continue; putchar(ch); } //输入0——9之外的数,输出空格,输入0——9,输出输入的值 return 0; }

3.getchar()的用法
getchar——从键盘读取字符的函数

复制代码
1
2
3
4
5
6
7
8
9
#include<stdio.h> int main(void) { int ch = 0; while ((ch = getchar()) != EOF)//EOF=End Of File=-1; { putchar(ch); //CTRL+Z为文件结束标志 }

意思是
getchar先读取一个字符放到ch里面去,如果这个字符不等于EOF,就进入循环,打印这个字符。当getchar读到文件末尾或者结束时,它会返回一个EOF,此时结束循环。
当我们想要结束时,输入ctrl+Z,再按回车即可
getchar的实例联系:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h> int main(void) { char password[20] = { 0 }; int ret = 0; printf("请输入密码:>"); scanf_s("%s", password);//读取密码,并放在passward数组中 //缓冲区还剩余n,读取后可恢复正常 printf("请确认(Y/N):>"); ret = getchar(); if (ret == 'Y') printf("确认成功"); else printf("确认失败"); return 0; }

结果为输入密码后未进行确认,默认确认失败
原因利用scanf输入密码后,按下了回车键,scanf取走了缓冲区的密码,还剩余n被getchar取走
正确做法为清空缓冲区,即

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char password[20] = { 0 }; int ret = 0; int ch = 0; printf("请输入密码:>"); scanf_s("%s", &password);//读取密码,并放在passward数组中 //缓冲区还剩余n,读取后可恢复正常 while ((ch = getchar()) != 'n'); printf("请确认(Y/N):>"); ret = getchar(); if (ret == 'Y') printf("确认成功"); else printf("确认失败");

4.contiune和break的应用

continue代表跳过后续步骤,进行下一次循环

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h> int main(void) { int i = 0; while (i <=10) { if (i == 5) continue; printf("%d", i); i++; } return 0; }

输出结果:0 1 2 3 4,原因:当i==5时,陷入死循环

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h> int main(void) { int i = 0; while (i <=10) { if (i == 5) break; printf("%d", i); i++; } return 0; }

输出结果:0 1 2 3 4
i==5时,跳出循环,运行结束

#for循环
##for的简单语法规则

复制代码
1
2
3
4
5
for(赋值;判断;调整) { 循环体; }

###练习
1.单个for的使用

复制代码
1
2
3
4
5
6
7
8
9
#include<stdio.h> int main() { int i = 0; for (i = 1; i <= 5; i++) { printf("ahahahahhan"); } return 0; }

2.for的嵌套使用

复制代码
1
2
3
4
5
6
7
8
9
10
#include<stdio.h> int main(void) { int i, j; for (i = 0; i < 3; ++i) //循环三次 for (j = 2; j < 5; ++j) //循环三次 printf("ahahahhn");//输出9此 printf("hhhhhhhn");//输出一次 return 0; }

输出结果为

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ahahahh ahahahh ahahahh ahahahh ahahahh ahahahh ahahahh ahahahh ahahahh hhhhhhh -------------------------------- Process exited after 0.03344 seconds with return value 0 请按任意键继续. . .

注意有多个for循环时,要区分所属循环语句
3.for的变种

复制代码
1
2
3
4
5
6
7
8
#include<stdio.h> int main(void) { int x, y; for (x = 0, y = 0; x < 2 && y < 5; ++x, ++y) printf("HEHEHn"); return 0; }

结果为
`HEHEH
HEHEH


Process exited after 0.02551 seconds with return value 0
请按任意键继续. . .
`
#do while循环
#do while循环的语法规则

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
do { } while (表达式) ; ``` ###举例 1. ```c #include<stdio.h> int main(){ int i=1; do{ printf("%dn",i); i++; } while(i<12); return 0; } ``` 输出结果为1 2 3 4 5 6 7 8 9 10 11 2.do... while.并不等价于for,当然也不等价于while主要用于人机交互 进阶应用 ```c #include<stdio.h> #include<math.h> int main(void){ double a,b,c; double delta; double x1,x2; char ch ; do{ printf("请依次输入a,b,c的值n"); //printf("a=%lf,b=%lf,c=%lfn",a,b,c); //scanf("%lf,%lf,%lf",a,b,c); printf("a的值为"); scanf("%lf",&a); printf("b的值为"); scanf("%lf",&b); printf("c的值为"); scanf("%lf",&c); delta=b*b-4*a*c; if(delta>0){ x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); printf("x1=%lf,x2=%lf",x1,x2); } else if(delta==0){ x1=x2=(-b)/(2*a); printf("x1=x2=%lf",x1,x2); } else printf("GUnn"); printf("还要继续不(Y/N)n"); scanf(" %c",& ch); } while('y'==ch||'Y'==ch); return 0; } ``` 可实现多次判断

最后

以上就是腼腆蜡烛最近收集整理的关于【循环总结】For循环,while循环,do while循环的全部内容,更多相关【循环总结】For循环,while循环,do内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(83)

评论列表共有 0 条评论

立即
投稿
返回
顶部