关于c语言里while循环条件问题

运行结果为什么会是1,2,while 循环里面的条件应该怎么判断?

while循环是对while括号后面的表达式进行真假的判断,,比如你用的a,C语言中有这样的规定,如果a=0;那么a 表达的就是假,如果a不为0,那么他表示的是真,因此,上面的循环,只要a不等于0,那么循环就一直进行
刚开始学的时候,我一直以为,只有在等于1的时候才是真,等于2他就不能循环了,其实那是错的,编译器判断真假条件的标准是他等不等于0,而不是等不等于1,楼主记住了哦~
还有就是,如果楼主的意愿是让a=0的时候退出循环,那么就可以按照你写的方法进行,如果楼主的意愿是让a=0的时候才循环,那么有2种写法
while(!a)
{
//对a进行非操作
}
还有就是
while(0==a)
{}
建议写成0== a 的形式,其实0==a,和a==0实质是一样的,但是如果你讲0==a,写成了0=a,那么编译器会报错,而将 a==0写成a=0编译器是不会报错的,可以减少风险。
祝你进步!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-07
while( a++ && ++b )
表示当a不等于0 并且 b不等于0时才循环,只要有一个为0,就会结束循环

a++先判断a是否为0,再a=a+1
++b表示先做b=b+1然后,检查b是否为0
当a==0时,不会再检查b
所以,a=1,而b=2 只循环了两次追问

a = 0的时候不检查b,这时候b等于2,那后面为什么a=1了,b没有加呢?

追答

a=0了,会加1,这是a++的特点

但 &&比较只要前面的是0了,后面的就不再操作了,所以,b不会会再操作了

本回答被提问者采纳
第2个回答  2014-12-07
首次:
a = -2 b = 0
1:while(-2 && 1) 条件1成立 a =-1 进行条件2操作后:b=1
2:while(-1 && 2) 条件1成立 a=0 进行条件2操作后b=2
3:while(0 && 前面不成立,后面不执行),条件1不成立a=1,条件2不执行了,b没有进行操作循环结束
结果:a = 1 b = 2追问

你第二次说的条件1成立是指得什么?是指的条件2吗,后面又有一个条件1?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网