[初试]C学习笔记#001: 关于while循环的条件
2015-11-10 17:21
274 查看
今天的上机课回顾了选择和循环,对于while循环的理解加深了一步,码一下一个小例子供各位参考
下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,程序并不完整,哪个选项能使得程序能够实现该功能()
选择一项:
A. k%11
B. k%11==0
C. k/11
D. k/11==0
我选成了第二项。。下面具体分析一下:
A. k%11 这个对
B. k%11==0 这个不对,
(原因:这里是要保证括号里条件为假时i和j的值都已经正确找到
因此只有k和11相除整除时才为假,所以while得写成k%11。)
解释!
虽然这题出的是do - while,不过它的条件判断与while循环的条件判断是一码事,只是执行代码的顺序有先后的区别而已。
对于while循环,while()括号中的东西,当while(!0),即当“while真”时,继续执行循环,即:真时循环,且是个死循环;特别地,当while(0),就不循环,printf出的东西就是唯一一次do的东西。
而当你用“k%11”时,每个k都去判断一遍,while"1、2、3、……"都继续循环,直到"0"时跳循环。
而k%11==0,这是个表达式,当满足表达式时,去while循环,不满足就跳循环。
这也是为什么你用“k%11==0”这个去运行程序,输出的是i=1,j=27,因为do之后的判断,是如果满足k%11==0就去循环,不满足就跳,因为i=1时的k,=303,不满足k%11==0,所以跳循环了!这时j=27(已取整)
所以同理,把它改成k%11!=0就行了,你可以思考一下这是为什么~
while真和while表达式,这是两码事!记清楚喔!
就这个例子好好思考下:
之前说了打0及所得结果的原因,那么,
打1为什么没东西?因为一直在循环,跳不出循环,也就到不了printf,不会执行打印语句。
总结:
while真就循环,死循环;while0不循环
while表达式,表达式真(或者说表达式被满足),循环;表达式假(表达式未满足),跳出循环。
下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,程序并不完整,哪个选项能使得程序能够实现该功能()
void main() { int i=0,j,k; do { i++; k=316-13*i; }while(________); j=k/11; printf("316=13*%d+11*%d",i,j); }
选择一项:
A. k%11
B. k%11==0
C. k/11
D. k/11==0
我选成了第二项。。下面具体分析一下:
A. k%11 这个对
B. k%11==0 这个不对,
(原因:这里是要保证括号里条件为假时i和j的值都已经正确找到
因此只有k和11相除整除时才为假,所以while得写成k%11。)
解释!
虽然这题出的是do - while,不过它的条件判断与while循环的条件判断是一码事,只是执行代码的顺序有先后的区别而已。
对于while循环,while()括号中的东西,当while(!0),即当“while真”时,继续执行循环,即:真时循环,且是个死循环;特别地,当while(0),就不循环,printf出的东西就是唯一一次do的东西。
而当你用“k%11”时,每个k都去判断一遍,while"1、2、3、……"都继续循环,直到"0"时跳循环。
而k%11==0,这是个表达式,当满足表达式时,去while循环,不满足就跳循环。
这也是为什么你用“k%11==0”这个去运行程序,输出的是i=1,j=27,因为do之后的判断,是如果满足k%11==0就去循环,不满足就跳,因为i=1时的k,=303,不满足k%11==0,所以跳循环了!这时j=27(已取整)
所以同理,把它改成k%11!=0就行了,你可以思考一下这是为什么~
while真和while表达式,这是两码事!记清楚喔!
就这个例子好好思考下:
之前说了打0及所得结果的原因,那么,
打1为什么没东西?因为一直在循环,跳不出循环,也就到不了printf,不会执行打印语句。
总结:
while真就循环,死循环;while0不循环
while表达式,表达式真(或者说表达式被满足),循环;表达式假(表达式未满足),跳出循环。
相关文章推荐
- sublime text 2中Emmet8个常用的技巧
- Android SDK 下载链接
- MySQL 获得当前日期时间的函数小结
- ios -- 微信 支付
- Nandflash中的ECC原理及实现
- Linux下修改Mysql的用户(root)的密码
- HDOJ 1528 Card Game Cheater(贪心)
- 日志级别
- Centos ping相关
- iOS 时时更新时间
- 浅谈C++多态性
- Java中equals和==的区别
- tag、untag,pvid,trunk的关系
- 配置java环境 ,安装Android Studio...(ps:用eclipse也不错,但as是趋势 自己凭爱好选择)
- javascript小知识
- 16. 附件查看下载做法(虚拟对象)
- 批处理/vbscript 启动/关闭 exe
- 基于Java+Selenium+Appium集成Web、安卓和IOS自动化测试框架的设计
- js中dom的document对象
- 设置Linux时间 同步时间