C语言输入输出
5 循环结构和选择结构
5.1 C语言if else语句
5.2 C语言关系运算符
5.3 C语言逻辑运算符
5.4 C语言switch case语句
5.5 C语言条件运算符
5.6 C语言while循环
5.7 C语言for循环
5.8 C语言跳出循环
5.9 C语言循环嵌套
5.10 对选择结构和循环结构的总结
5.11 谈编程思维的培养,初学者如何实现自我突破(非常重要)
5.12 写一个内存泄露的例子,让计算机内存爆满
C语言数组 C语言函数 预处理命令 重要知识点补充 C语言调试 前面讲解了顺序结构和选择结构,本节开始讲解循环结构。所谓 循环(Loop) ,就是重复地执行同一段代码,例如要计算 1+2+3+……+99+100 的值,就要重复进行99次加法运算。 while循环 while循环的一般形式为: while(表达式){
意思是,先计算“表达式”的值,当值为真(非0)时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行 while 后面的代码。
我们通常将“表达式”称为 循环条件 ,把“语句块”称为 循环体 ,整个循环的过程就是不停判断循环条件、并执行循环体代码的过程。
while 循环 计算1加到100的值: #include <stdio.h> int main(){ int i=1, sum=0; while(i<=100){ sum+=i; printf("%d\n",sum); return 0; 运行结果:
代码分析:
1) 程序运行到 while 时,因为 i=1,i<=100 成立,所以会执行循环体;执行结束后 i 的值变为 2,sum 的值变为 1。
2) 接下来会继续判断 i<=100是否成立,因为此时 i=2,i<=100 成立,所以继续执行循环体;执行结束后 i 的值变为 3,sum 的值变为3。
3) 重复执行步骤 2)。
4) 当循环进行到第100次,i 的值变为 101,sum 的值变为5050;因为此时 i<=100 不再成立,所以就退出循环,不再执行循环体,转而执行while循环后面的代码。
while 循环的整体思路是这样的:设置一个带有变量的循环条件,也即一个带有变量的表达式;在循环体中额外添加一条语句,让它能够改变循环条件中变量的值。这样,随着循环的不断执行,循环条件中变量的值也会不断变化,终有一个时刻,循环条件不再成立,整个循环就结束了。
如果循环条件中不包含变量,会发生什么情况呢?
1) 循环条件成立时的话,while 循环会一直执行下去,永不结束,成为“死循环”。例如: #include <stdio.h> int main(){ while(1){ printf("1"); return 0; 运行程序,会不停地输出“1”,直到用户强制关闭。
2) 循环条件不成立的话,while 循环就一次也不会执行。例如: #include <stdio.h> int main(){ while(0){ printf("1"); return 0; 运行程序,什么也不会输出。
再看一个例子,统计从键盘输入的一行字符的个数: #include <stdio.h> int main(){ int n=0; printf("Input a string:"); while(getchar()!='\n') n++; printf("Number of characters: %d\n", n); return 0; 运行结果:
Input a string:c.biancheng.net↙
Number of characters: 15
本例程序中的循环条件为 getchar()!='\n' ,其意义是,只要从键盘输入的字符不是回车就继续循环。循环体 n++; 完成对输入字符个数计数。 do-while循环 除了while循环,在C语言中还有一种 do-while 循环。
do-while循环的一般形式为: }while(表达式);

do-while循环与while循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”。
用do-while计算1加到100的值: #include <stdio.h> int main(){ int i=1, sum=0; sum+=i; }while(i<=100); printf("%d\n", sum); return 0; 运行结果:
注意 while(i<=100); 最后的分号 ; ,这个必须要有。 while循环和do-while各有特点,大家可以适当选择,实际编程中使用while循环较多。

关注公众号「 站长严长生 」,在手机上阅读所有教程,随时随地都能学习。本公众号由 C语言中文网站长 亲自运营,长期更新,坚持原创。

微信扫码关注公众号