我的简单for循环有什么问题?

时间:2014-08-28 14:56:47

标签: c++ for-loop

我的for循环遇到了一些麻烦,我想在for循环中的一个int数组中输入1个数字,它将循环4次。但是输出立即变为“请输入第4个数字”,好像变量i从一开始就是4。

#include <iostream>
#include <string>
#include <iostream>

using namespace std;

void main()
{
    int PIN[4] = {};
    string txtNr ="1st";
    for(int i=0;i<4;i++)
    {
      if(i=0)
        txtNr = "1st";
      if(i=1)
        txtNr = "2nd";
      if(i=2)
        txtNr = "3rd";
      if(i=3)
        txtNr = "4th";
      cout << "Please enter the " << txtNr <<" number: ";
      cin >> PIN[i];
    }


        for(int i=0;i<4;i++)
        {
           cout << PIN[i] << endl;
        }
}

任何人都有线索? 如果我输入一个数字,最后一个输出是例如

0 0 0 1

2 个答案:

答案 0 :(得分:8)

=更改为==以检查if(...)语句中的相等性。

只需简单=即可更改i的值,就像通常的作业一样。

此外,我建议您阅读C++ Style Guide from Google

之后,您的代码应如下所示:

#include <iostream>
#include <string>
#include <iostream>

using namespace std;

void main()
{
    int PIN[4] = {};
    string txtNr ="1st";
    for(int i=0;i<4;i++)
    {
      if(i == 0)
        txtNr = "1st";
      if(i == 1)
        txtNr = "2nd";
      if(i == 2)
        txtNr = "3rd";
      if(i == 3)
        txtNr = "4th";
      cout << "Please enter the " << txtNr <<" number: ";
      cin >> PIN[i];
    }


        for(int i=0;i<4;i++)
        {
           cout << PIN[i] << endl;
        }
}

答案 1 :(得分:3)

您正在使用if(i=3)代替if(i==3),这会影响i的价值而非比较它。