C语言之路第八天:循环语句

在循环中break和continue关键字均可以使用

其中程序运行到break表示程序跳出整个循环,程序运行到continue表示程序跳过本次循环中的continue后面的循环体的内容,进行下一次循环。

1,while循环

基本语法:while(表达式)

                        {

                                循环语句

                                }

例如:

在这while循环中,有两个函数

getchar()函数:用于获取键盘上输入的字符,如果输入Ctrl+z相当于输入EOF

putchar()函数:用于打印字符

EOF——end of file其值为-1

有关getchar的使用:

 这个程序,很多人都会认为它会正常运行,但是,它会出问题,运行起来程序将不会停下来等待你去输入Y或N,主要原因是在输入密码之后,会敲一个enter才会继续运行程序,但是这个enter又会在缓存区保存下来,而getchar()在获取键盘输入的时候会先从缓存区获取,如果有就获取(且一次获取一个),没有才会等待输入,因此这个程序直接获取enter,不是Y,直接放弃确认。

该如何解决这个问题呢?这个问题出现在缓存区有字符,关键就是将缓存区的字符清除掉

这里如果多次获取就可以解决这个问题,程序输入的最后一个要敲一个enter,因此要循环获取,直到获取到最后一个字符enter即\n 即可,用一个while循环,具体如下:

 循环体内什么都不做,因此用以分号即可。

字符间比较大小,实际上是比较其所对应的ascii的大小

 这段程序只能打印0—9之间ascii所对应的数字

2,for循环(用的最多)

语法:for(表达式1;表达式2;表达式3)

                {循环语句}

表达式1为初始化部分,表达式2是条件判断部分,表达式3是调整部分,用于循环变量的调整。

for循环的使用:

while循环打印1-10

 for循环打印1-10

 for里面,i=1是循环变量的初始化,i<=10是进入循环的条件,满足则执行循环,i++是每次循环后循环变量i的变化。

注意对比下面两端代码:

 先看右边这个代码,当i==5,时候跳过后面的程序,i++无法执行,再次跳到while时候,i继续为5,循环就在这里进入了死循环,再看左边这个代码,当i==5时候,循环会跳过后面的打印,但是,i++会继续执行,程序不会进入死循环,正确执行。

对于for循环的一些建议:1.不可以在for循环内修改循环变量,防止for循环失去控制

在这程序中,本意是想判断i是否等于5(i==5),但是写成了赋值(i=5),一到if判断时候,i就等于5,这个程序就会一直打印hehe,无限循环下去。

2,建议for循环中的循环变量采取前闭后开区间的写法。

如for(i=1;i<=9;i++)最好写成for(i=1;i<10;i++)这个10即指出了循环10次又指出了打印10次。

下面看几个for循环的变式:

(1)

在这些循环中省略了初始化,判断,调整部分,但是如果for循环中判断条件被省略,程序会默认判断结果恒为真,那么这个程序就进入死循环,一直打印hehe

如果不是很熟悉,就不要省略代码,不然容易出现bug。

2,多个变量循环

 这个循环,只有在同时满足x<2,y<5时才可以继续循环,也就是这个循环可以走两次

下面做一个题目:

 注意这个判断条件是k=0,是赋值,并且等于0,为假,所以一次也不循环

3,do...while循环

语法结构:do 

                        {循环语句}

                   while(表达式)

上来就会先执行一次循环,之后判断是否满足条件,如果满足就继续循环,如果不满足就不在循环,do...while循环至少执行一次

用do...while循环打印1-10

 

这个循环中当i=5时,由于i++在continue后面,执行到i=5时,跳出本次循环,i一直都是5,程序进入死循环。 

 下面看几个循环的实例进行

1,二分法查找有序数组的元素

2,两端逼近打印

3,模拟用户登录 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值