嗨我有这个简单的代码,当我等于2时打印出书单词
int i;
for (i=0;i!=5;i++)
{
if(i=2)
{
cout << "book";
};
}
我不知道为什么这段代码总是循环,即使我将i限制为5。
如果我之前打印i,如果条件打印此
0book3book3book3book3book3book3book3book3book3book3boo....
我使用在线编译器来编译它。
任何人都知道如何解决这个问题?
答案 0 :(得分:8)
if(i=2)
应该是
if(i==2)
经典错误
答案 1 :(得分:6)
if(i=2)
- &gt;赋值运算符
if(i==2)
- &gt;比较。 非常不同。
答案 2 :(得分:4)
if(i=2)
相当于
i = 2;
if(i != 0)
你需要
if(i == 2)
答案 3 :(得分:4)
是的,Roger说你所做的是在if语句中做一个赋值而不是比较。
if(i=2) //assignment
if(i==2)//comparison
亲自将变量与raw int等进行比较时,我喜欢执行以下操作:
if(2==i) //comparison no error
if(2=i) //attempt to assign to raw int :ERROR
答案 4 :(得分:2)
指示
if(i=2)
表示:将值2分配给i并检查i!= 0。
你必须这样做:
if(i==2)
检查i是否等于值2.
简单的语法。