我的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
答案 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
的价值而非比较它。