c++ 这个简单的WHILE 循环为什么是死循环

#include<iostream.h>intmain(){inta=10,i=0;while(i!=a){if(i=5){cout<<"5";}elsecout<<"n... #include<iostream.h>

int main()
{

int a=10,i=0;

while(i!=a)
{
if(i=5)
{
cout<<"5 ";
}

else
cout<<"not 5 ";
i++;
}
return 0;
}
我分布测试过 I上来就等于5
展开
 我来答
前程show
2009-01-13 · TA获得超过852个赞
知道小有建树答主
回答量:512
采纳率:0%
帮助的人:0
展开全部
int main()
{

int a=10,i=0;

while(i!=a)
{
if(i=5) //你把i赋值了5,应该改为if(i==5)
{
cout<<"5 ";
}

else
cout<<"not 5 ";
i++;
}
return 0;
}
电脑阿傻
2009-01-13 · TA获得超过658个赞
知道小有建树答主
回答量:608
采纳率:0%
帮助的人:395万
展开全部
if(i=5)

这里应该是 if(5==i)吧???你写成赋值语句了 少了个等号 上来当然 I就等于5啦~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莫为开心莫为2
2009-01-13 · TA获得超过505个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:249万
展开全部
哈哈if(i=5)你看看你是这么写的吧 改成 if(i==5)
明白我的意思吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanxin1917
2009-01-13
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
哦,我测试了一下也是死循环。后来发现了一个我也经常犯的错误,你看看
if(i=5) 这个地方,"i=5"是个赋值表达式,那么这个条件就永远为真了,所以就一直循环了,改为 if(i==5)就OK了~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wudy062379
2009-01-13 · TA获得超过132个赞
知道答主
回答量:101
采纳率:0%
帮助的人:90.6万
展开全部
因为你的if语句中相等应该是两个等号,即“==”,而不是赋值号“=”,所以你只要将if语句括号里的“=”改成“==”就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2009-01-13 · TA获得超过3000个赞
知道大有可为答主
回答量:1338
采纳率:75%
帮助的人:1294万
展开全部
= 是赋值,
== 才是判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式