![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
c语言求教
为什么while(1){x++}和do{i++;}while(1)是死循环,而for(x=-10;x++)不是,那个while(1)是啥意思...
为什么while(1){x++}和do{i++;}while(1)是死循环,而for(x=-10;x++)不是,那个while(1)是啥意思
展开
展开全部
for(x=-10;x++)是一错误的表达式,我想应该是 for(x=-10;x;x++);才对
解释:
while(1){x++;}
是一个条件循环,即当括号内的表达式不为0时进入循环体内,这里的表达式是1,即条件永远不为0,所以循环就一直继续下去,也就成了“死循环”
do{i++;}while(1)意义同上,只不过前者是先判断条件,再循环,而后者是先进入循环,再判断条件。由于判断条件始终为1,所以都产生“死循环”现象
至于for(x=-10;x;x++);
当中间那个表达式x为零时退出循环,而这里x的初始值为-10,现将它依次加1,则x的值将从-10,依次变为-9,-8,...一直到0,即退出循环
解释:
while(1){x++;}
是一个条件循环,即当括号内的表达式不为0时进入循环体内,这里的表达式是1,即条件永远不为0,所以循环就一直继续下去,也就成了“死循环”
do{i++;}while(1)意义同上,只不过前者是先判断条件,再循环,而后者是先进入循环,再判断条件。由于判断条件始终为1,所以都产生“死循环”现象
至于for(x=-10;x;x++);
当中间那个表达式x为零时退出循环,而这里x的初始值为-10,现将它依次加1,则x的值将从-10,依次变为-9,-8,...一直到0,即退出循环
追问
请问为什么到就要退出呢,这里的0不是仅仅是数字吗
追答
在算术表达式中0 是数字,但逻辑表达中,同样数字 0则表示假
for(表达式1;表达式2;表达式3)
表达式2的结果就是判断条件,比如:
for(i=-10;i0;i++)中,i0就是一个判断条件,当i不等于0时,表达式i0为真,值就是1,这时循环继续,如果i等于0,就表示i0为假,值就是0,这时退出循环
而
for(i=-10;i;i++)中,当i从-10 依次加1,直至0时,这时表达式i的值与上述i0都是0,所以退出。
展开全部
while判断条件是否为true,true就一直执行循环。while(1)条件为1表示true。所以一直循环。像这种写法,循环体内部都需要使用if条件判断,break跳出。
for循环的话,for(A;B;C),A表示起始条件,B表示循环条件,C表示循环变量变化的方式。
只要B为true,就循环。
for循环的话,for(A;B;C),A表示起始条件,B表示循环条件,C表示循环变量变化的方式。
只要B为true,就循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c语言里面0是false,非0是true,也就是说1是true,100也是true,你可以写while(true) or while(1) or while(2) or while(100)等等,通常情况下写while(1)。
for循环的结构是for( ; ; )即使参数不填完,分号也不能少,你写的那个只有一个分号,会报错的。
for循环的结构是for( ; ; )即使参数不填完,分号也不能少,你写的那个只有一个分号,会报错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(x=-10;x++)这句你是不是少了个分号? while(1) 和while(true)是一个意思。
就是循环测试一直为真.
就是循环测试一直为真.
追问
是少了分号,请问怎么知道while的条件是否为真呢,此处的for循环不是也可以一直循环下去吗?
追答
while(1)本身就是代表无限次重复执行while语句的循环;
for语句是这样的吧:for(x=-10;;x++),for中间的是一项是判定条件,当其为真时执行循环,为假时不执行,当X自加到0时,按照c语言里面的判断条件,为0时即为假,所以跳出了循环,不是死循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while后面的条件只要是非0就执行循环,
你那个for的语句写错,
你那个for的语句写错,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |