前言:
什么是循环呢?日常生活中,资金流入,材料采购,加工,产出成品,包装,销售换钱实现再生产,这是一个循环往复的过程。当然,难免会遇到一些意外导致生产停止,或是放弃此次生产,从头再来等情况。今天我们来看看C语言中的循环结构吧。
1.while循环
使用while循环打印1-10之间的数。
1.1while循环的结构
和if语句不能说很像,只能说简直一模一样。当然if语句只能执行一次,而while语句是可以执行多次的。
1.2while语句中的break和continue
while的条件是i小于等于100,符合条件进入循环,i先自增1;
判断i等不等于5,不等于,不进去if语句;
打印i的值,为1;
判断i等不等于10,不等于,不进;
一个循环结束,回到while判断部分,和第一次进入循环不同的是,i变成1进入循环的;
在i以4进行判断进入循环,i++;让i变为5,符合if(i == 5)的条件,进入continue。然后我们发现,控制台窗口没有5的身影,也就是说在continue后面的printf函数没有被执行。这是因为在循环里执行到continue时,就直接跳到判断部分了,本次循环后面的代码就不执行了。
这就是continue执行后,不打印5的原因,因为printf在i为5的时候,被跳过了。
然后i=5进入循环,i++(加加)变成6,if(i==5)不成立就不进去了;
随着循环的次数增加,来到了i为9的时候,判断循环条件,符合条件进入循环;
i加加变成10,判断不成立,然后打印,最后!if(i==10)成立,进入执行break;
我们最终看到循环里只打印到了10,距离循环条件结束还早着呢;
对的,这就是break的功能,直接跳出循环,不管while还能有多少次循环。
那我们到目前为止,学了使用break跳出while循环和switch语句。别忘记或混淆了,所以我在这特意提一下。
2.getchar配合循环清空缓冲区
为什么我们知道输入缓冲区里最后一个字符是斜杠0?这是因为,当我们使用scanf输入的时候,最后敲的回车是一种信号------让scanf函数读取的信号。我们知道回车是换行的效果,在C语言中,换行可以用'\n'。确认让scanf读取的回车键会使'\n'留在输入缓冲区里面,所以输入结尾都是'\0'。我们让getchar一个字符一个字符读,读到的字符不管它,到最后一次,getchar读到了'\0',注意,这里是已经读取到了'\0'再来判断的,所以斜杠零是被读掉了的,然后判断是斜杠零不等于斜杠零是假的,不符合条件,循环终止。
清空输入缓冲区后,c = getchar()让我们输入一个字符,我们输入a,putchar跟着输出a,程序结束。