代码无限循环不能只打印一次

时间:2013-12-20 10:30:52

标签: c++

嗨我有这个简单的代码,当我等于2时打印出书单词

int i;
    for (i=0;i!=5;i++)
    {
        if(i=2)
        {
            cout  << "book";
        };

    }

我不知道为什么这段代码总是循环,即使我将i限制为5。

如果我之前打印i,如果条件打印此

0book3book3book3book3book3book3book3book3book3book3boo....

我使用在线编译器来编译它。

任何人都知道如何解决这个问题?

5 个答案:

答案 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.

简单的语法。