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)是啥意思 展开
 我来答
百度网友72165e1
2013-07-01 · TA获得超过2169个赞
知道大有可为答主
回答量:1369
采纳率:100%
帮助的人:404万
展开全部
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,即退出循环
追问
请问为什么到就要退出呢,这里的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,所以退出。
玻璃麦田bd
2013-07-01 · TA获得超过451个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:271万
展开全部
while判断条件是否为true,true就一直执行循环。while(1)条件为1表示true。所以一直循环。像这种写法,循环体内部都需要使用if条件判断,break跳出。

for循环的话,for(A;B;C),A表示起始条件,B表示循环条件,C表示循环变量变化的方式。
只要B为true,就循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hclhso123
2013-07-01 · 超过20用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:58.7万
展开全部
c语言里面0是false,非0是true,也就是说1是true,100也是true,你可以写while(true) or while(1) or while(2) or while(100)等等,通常情况下写while(1)。
for循环的结构是for( ; ; )即使参数不填完,分号也不能少,你写的那个只有一个分号,会报错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汪刚cs
2013-07-01 · TA获得超过112个赞
知道答主
回答量:147
采纳率:0%
帮助的人:83.2万
展开全部
for(x=-10;x++)这句你是不是少了个分号? while(1) 和while(true)是一个意思。
就是循环测试一直为真.
追问
是少了分号,请问怎么知道while的条件是否为真呢,此处的for循环不是也可以一直循环下去吗?
追答
while(1)本身就是代表无限次重复执行while语句的循环;
for语句是这样的吧:for(x=-10;;x++),for中间的是一项是判定条件,当其为真时执行循环,为假时不执行,当X自加到0时,按照c语言里面的判断条件,为0时即为假,所以跳出了循环,不是死循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乱舞大螃蟹
2013-07-01 · TA获得超过188个赞
知道答主
回答量:205
采纳率:0%
帮助的人:109万
展开全部
while后面的条件只要是非0就执行循环,

你那个for的语句写错,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式